Mongodb:在集合上聚合时为每个文档添加新的子文档

时间:2018-08-29 10:37:22

标签: mongodb aggregation-framework

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
   }
 ]
}

0 个答案:

没有答案