Объединить же результат мангуста - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть результат в массиве объектов, и я хочу сгруппировать по тому же результату в мангусте.Например, я получаю следующий результат:

[ 
  { 
   projectId: 5c0a4083753a321c6c4ee024,
   userId: 5c0a29c697e71a0d28b910a9
  },
  { 
   projectId: 5c0a2a8897e71a0d28b910ac,
   userId: 5c0a29e597e71a0d28b910aa,
  },
  { 
   projectId: 5c0a4083753a321c6c4ee024,
   userId: 5c0a29e597e71a0d28b910aa,
  } 
]

Теперь я хочу один объект для одного и того же пользователя и объединенный массив projectId, как показано ниже:

{
  userId: 5c0a29e597e71a0d28b910aa, 
  projectId: [
     5c0a2a8897e71a0d28b910ac,
     5c0a4083753a321c6c4ee024
  ],
} 

Пожалуйста, помогите мне, Как я могудостичь этого или предложить мне что-нибудь другое.Спасибо. Attached result

1 Ответ

0 голосов
/ 08 декабря 2018

Вы можете использовать ниже агрегации

db.collection.aggregate([
  { "$group": {
    "_id": "$userId",
    "projectId": { "$push": "$projectId" }
  }},
  { "$lookup": {
    "from": "users",
    "localField": "_id",
    "foreignField": "_id",
    "as": "user"
  }},
  { "$lookup": {
    "from": "projects",
    "localField": "projectId",
    "foreignField": "_id",
    "as": "projectId"
  }}
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...