#mongodb
#mongodb
Вопрос:
У меня есть следующие коллекции, которые я использую $lookup
для объединения:
{
"organizations": [
{
"_id": 1,
"name": "foo",
"users": [1,2]
},
{
"_id": 2,
"name": "bar",
"users": [1]
}
],
"users": [
{
"_id": 1,
"name": "john1 smith"
},
{
"_id": 2,
"name": "bob johnson"
}
]
}
Запрос работает нормально:
[{
"$lookup": {
"from": "users",
"localField": "users",
"foreignField": "_id",
"as": "members"
}
},
{
"$unwind": "$members"
},
{
"$group": {
"_id": "$_id",
"original": { "$first": "$ROOT" },
"members": {
"$push": "$members"
}
}
}
]
однако результирующие organizations
записи не возвращают все свои свойства без добавления original
реквизита, который возвращает мне вложенность оригинала organization
:
{
"_id": 1,
"original": {
"_id": 1,
"name": "foo",
"users": [
1,
2
],
"members": {
"_id": 1,
"name": "john1 smith"
}
},
"members": [
{
"_id": 1,
"name": "john1 smith"
},
{
"_id": 2,
"name": "bob johnson"
}
]
}
Я пытаюсь вернуть все в original
prop обратно в корень вместе с новым members
массивом.
Комментарии:
1. Каков ваш ожидаемый результат
2. Я пытаюсь перенести все содержимое
original
объекта в корень, чтобы корневые реквизиты объекта стали_id
,name
,users
,members
3. Если вы выполняете только поиск, все будет в корне. Я не понимаю, почему вы делаете unwind и group!!
4. @varman Я думаю, что, возможно, я что-то перепутал изначально и пошел по пути, думая, что мой первоначальный запрос не сработал. Спасибо.