Прежде всего я ищу все групповые документы в моей коллекции:
const groups = await Content.find({ type: 'group' }).toArray()
Для этого массива мне нужно найти каждый дочерний документ и добавить его к объекту:
groups.map(async g => {
g.content = await Content.find({
type: 'element',
parent: g._id
}).toArray()
console.log(g) // <-- has content field, which is what I am expecting
})
console.log(groups) // <-- content field is missing
Пример
Чтобы было немного понятнее: groups
может иметь такой результат:
[{
_id: 'xxnQt5X8pfbcJMn6i',
title: 'Title',
type: 'group',
}]
Теперь я ищу каждый элемент (в этом примере он только один) для всех документов с родительским идентификатором, и этот результат должен быть добавлен в качестве поля к group
.
[{
_id: 'xxnQt5X8pfbcJMn6i',
title: 'Title',
type: 'group',
content: [
{ _id: '1', title: 'example', parent: 'xxnQt5X8pfbcJMn6i' },
{ _id: '2', title: 'another example', parent: 'xxnQt5X8pfbcJMn6i' }
]
}]
В своей попытке я не получаю содержимое при выполнении console.log вне карты ().
И, возможно, это можно сделать напрямую с моим запросом mongoDB (я использую собственный драйвер mongoDB )