Как я могу сделать поиск $ из разных коллекций в зависимости от некоторых условий? - PullRequest
0 голосов
/ 18 мая 2019

У меня есть 3 коллекции: 'group10', 'group20' и 'parent'

Я хочу выполнить поиск $ в конвейере агрегации из одной из этих коллекций в зависимости от условия в коллекции 'parent'.

Коллекция 'parent':

[{_id: 1, groupId: 10},
 {_id: 2, groupId: 20}]

Коллекция 'group10':

[{_id: 1, groupId: 10, userData: 'A'},
 {_id: 2, groupId: 10, userData: 'B'}]

Коллекция 'group20':

[{_id: 1, groupId: 20, userData: 'C'},
 {_id: 2, groupId: 20, userData: 'D'}]

Я попробовал следующий код:

$lookup: {
    from: {
        $cond: [{
                $eq: ['$groupId', 10]
            },
            'group10',
            'group20'
        ]
    },
    localField: 'groupId',
    foreignField: 'groupId',
    as: 'data'
}

но при получении этой ошибки: опция 'from' для $ lookup должна быть строкой, но имела тип объекта

...