У меня есть следующая коллекция:
коллекция A:
{
_id: 5e8b1dd9e45da75adb2278fd,
mobile: '445566',
content_id: 5e8b1d1ae45da75adb2278fc,
active: false,
}
У меня есть другая коллекция, подобная этой:
коллекция B:
{
title: {
en: 'example title',
xx: 'another title',
},
body: {
en: 'example body',
yy: 'another body',
},
_id: 5e8b1d1ae45da75adb2278fc,
}
, если вы видите, что первая коллекция содержит _id второй коллекции, поэтому я использую mon goose, и каждый из них я могу перечислить отдельно, и он работает нормально. Теперь я хочу получить все элементы в столбце А, и поскольку это массив элементов, я хочу сделать что-то вроде этого:
async (req, res, err) {
const allContents = [];
const mobile = [];
mobiles = await MyCollectionA.find({mobile: req.params.mobile})
mobiles.forEach(async (mobile) => {
const content = await MyCollectionB.findById(mobile.content_id);
allContents.push(mobile, content);
// if I do console.log(allContents), here I have all needed data available
});
console.log(allContents) // show me empty array, []
res.json(allContents);
}
кажется, что он не ждет, пока forEach завершит свою работу; Я попробовал mon goose stream и не смог достичь того, чего хочу.