filnor
@filnor
¯\_( ツ)_/¯

Как правильно построить запрос в MongoDB?

Добрый вечер.
Подскажите, как правильно вытащить из монги данные, которые имеют следующую структуру. Есть три коллекции Конкурсы, Группы, Поля - кажое из которых цепляется к следующему через 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
    };
});
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
Robur
@Robur
Знаю больше чем это необходимо
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы