Не удается выполнить сложное вложение в запросы mongodb? - PullRequest
1 голос
/ 17 июня 2020

как выполнить полное вложение в mongodbquery

1 Ответ

1 голос
/ 17 июня 2020

Есть много способов сделать это, вот пример вложенности $lookup:

[
    {
        '$lookup': {
            'from': 'questionsanwereds',
            'let': {id: '$_id'},
            "pipeline": [
                {
                    $match: {
                        $expr: {
                            $eq: ["$$id", "$reqId"]
                        }
                    }
                },
                {
                    $unwind: "$questions"
                },
                {
                    $lookup: {
                        from: "questions",
                        localField: "questions.questionId",
                        foreignField: "_id",
                        as: "questionObj"
                    }
                },
                {
                    "$unwind": "$questionObj"
                },
                {
                    $group: {
                        _id: "$_id",
                        questions: {
                            $push: {
                                comment: "$comment",
                                name: "$questionObj.name",
                                optionSelected: "$optionSelected"
                            }
                        }
                    }
                }
            ],
            'as': 'questionsAnswereds'
        }
    },
    {
        '$unwind': {
            'path': '$questionsAnswereds'
        }
    }
]

Стратегия заключается в заполнении названия каждого вопроса отдельно, а затем группировании для восстановления необходимого структура.

...