子文档键上的MongoDB聚合

时间:2014-12-28 14:11:05

标签: mongodb mongoose mongodb-query aggregation-framework

我有以下文件

{
  date: ISODate(some-date)
  story: {
     a: 24,
     b: 12
  }
},

{
  date: ISODate(some-date)
  story: {
     b: 16,
     c: 14
  }
}

我希望得到的结果有点像:

{
  a: 24,
  b: 28,
  c: 14
}

我已经在很多地方寻找过这个但却无法找到办法。显然放松不起作用,因为它不是一个子阵列。我无法弄清楚如何使用组。

1 个答案:

答案 0 :(得分:1)

如果您要对整个集合进行分组,只需使用null这样的常量值进行分组_id

 
db.test.aggregate([
    {$group: {
        _id: null,
        a: {$sum: '$story.a'},
        b: {$sum: '$story.b'},
        c: {$sum: '$story.c'},
    }}
])

输出:

{
    "result" : [ 
        {
            "_id" : null,
            "a" : 24,
            "b" : 28,
            "c" : 14
        }
    ],
    "ok" : 1
}