У меня есть следующий код в моей асинхронной функции
async function test () {
try {
const aucs = await auctions.find({owner: 'owner', place: 'place'}).limit(15);
const item = await Promise.all(aucs.map(async aucs => {
const map = await items.find({id: aucs.item});
return map[0]
}));
--->we are here [1]
} catch (err) {
console.log(err);
}
}
test();
и точка [1]
У меня есть два доступных массива, которые содержат другие объекты (оба являются откликами из Mongo), вот они:
aucs = [ { _id: 5c00faa4936359120ceb3632,
auc: 177215422,
item: 130251,
price: 26000000,
lastModified: 1543567955000,
date: 2018-11-30T08:53:56.290Z,
__v: 0 },
{ _id: 5c00faa4936359120ceb363f,
auc: 177215440,
item: 130251,
price: 26000000,
lastModified: 1543567955000,
date: 2018-11-30T08:53:56.290Z,
__v: 0 },... ]
и
item = [ { _id: 5bcd8a6134cdd1223cd3239b,
id: 130251,
name: 'TEST_NAME_1',
__v: 0 },
{ _id: 5bcd8a6134cdd1223cd3239b,
id: 130252,
name: 'TEST_NAME_2',
__v: 0 },...]
И я хотел бы добавить к aucs[i]
каждый элемент в aucs, item[i].name
(name: 'TEST_NAME_1'
) Как:
combined = [ { _id: 5c00faa4936359120ceb3632,
auc: 177215422,
item: 130251,
name: 'TEST_NAME_1',
price: 26000000,
lastModified: 1543567955000,
date: 2018-11-30T08:53:56.290Z,
__v: 0 },...]
Я пытаюсь использовать for
цикл с auc[i].name = item[i].name
или aucs.push()
, но по неизвестной причине это не сработало для меня.Я получаю ошибку за .push is not a function
и за цикл ничего не добавил.Так, может быть, у кого-то есть идеи?
Примечание: 1
фактически решает одну проблему с элементом, Монго возвращает мне массив внутри массива, как [ [ { ...} ] ]
, поэтому я должен использовать returnкарта [0], чтобы исправить это.
Примечание: 2
и aucs, и item являются объектами в соответствии с typeof и имеют опцию .length (они имеют одинаковую длину и должны быть все время.Таким образом, они не обещания
Примечание: 3
let merged = {...aucs, ...item};
возвращает меня
{ '0': { _id: 5bcd8a6134cdd1223cd3239b,
id: 130251,
name: 'JewelCraft',
icon: 'inv_jewelcrafting_70_jeweltoy',
stackable: 1,
isAuctionable: true,
__v: 0 }...
но не то, что мне нужно