Добрый вечер.
Подскажите, как правильно вытащить из монги данные, которые имеют следующую структуру. Есть три коллекции Конкурсы, Группы, Поля - кажое из которых цепляется к следующему через id:
const Contest = {
...
group_ids: ['abc', 'def']
...
}
const Group = {
...
title: 'Hello'
...
}
const Field = {
...
fieldGroupId: 'abc'
}
Далее, имея эти id групп в конкурсе, нужно вытащить данные самой группы и для каждой группы вернуть еще поля которые к ней привязаны.
Т.е в результате получить вот такой объект:
const groups = [
{
gruop: GROUP_DATA,
fields: GROUP_FIELDS
},
...
]
Я пытался получить вот так, но тут необходимо его еще как-то зарезолвить т.к в результате приходит два пустых объекта.
Ну и кроме того, хочется этот кусок кода как-то оптимизировать, чтобы не делать по 50 запросов к базе, за раз.
let groups = contest.fields_groups.map( async ( group_id ) => {
let group = await ContestGroups.findById( group_id );
let fields = await ContestField.where({ fieldGroupId: group_id });
return {
group: group,
fields: fields
};
});