Mongodb: добавить новый поддокумент для каждого документа при агрегировании в коллекции - PullRequest
0 голосов
/ 29 августа 2018
db.test.aggregate([
{$match: { "colx" : 8323, "id" : {$in: [802, ....]}}},
{$group: {_id : { coly : "$coly" , id : "$id" } ,  total: {$sum: "$val"} } },
{$group: {_id: '$_id.coly', items: {$push: {id: '$_id.id', total: '$total'}} } }
])

результат:

{
"_id": 898,
"items": [
   {
      "id" : 801
      "total" : 3355560
   },
   {
   "id" : 805
   "total" : 2760139
   }
 ]
}

есть ли способ обновить все документы дополнительным элементом после последней операции $ group, чтобы мы получили результат, подобный следующему:

{
"_id": 898,
"items": [
   {
      "id" : 801
      "total" : 3355560
   },
   {
   "id" : 805
   "total" : 2760139
   },
   { //extra item
   "id" : 817
   "total" : 0
   }
 ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...