MongoDb在嵌套对象字段上聚合

时间:2017-10-21 17:47:40

标签: mongodb aggregation-framework aggregate

我有一系列格式

的文件
{
    "name": <name>,
    "status": {
        "statusId": <can be a number which I want to aggregate like 1/2/3/4>
    }
}

我想通过status.statusId进行汇总 - 例如5个文档有status.statusId = 0,3个文档有status.statusId = 5等。

我试过

db.getCollection("users").aggregate([
{
    $group: { _id: { "status":  { "statusId": "$statusId" }}, count: {$sum:1} }
}
])

但它不起作用。

我哪里错了?

1 个答案:

答案 0 :(得分:1)

您应该为_id

使用点表示法
db.getCollection("users").aggregate([
   {
      $group: { _id:  "$status.statusId", count: {$sum:1} }
   }
])