MongoDB收集记录计数字组

时间:2016-07-04 05:56:50

标签: mongodb

我是MongoDb的新手,我有一个包含以下记录的MngoDB Collection。

Name    Subject
AA  A
AA  B
AA  A
AA  C
AA  A
BB  A
BB  B
BB  B
CC  A
CC  C
DD  C

使用上面的记录集我想获得以下输出

Name    Subject Count
AA  A   3
AA  B   1
AA  C   1
BB  A   1
BB  B   2
CC  A   1
CC  C   1
DD  C   1

请帮助我解决问题

2 个答案:

答案 0 :(得分:2)

您需要使用聚合框架。

db.collection.aggregate( [ { $group : { _id : {name:"$name"}, count: { $sum: 1 } } } ] );

更多详情:Clock here

答案 1 :(得分:1)

根据特定字段值汇总操作组文档并对组数据应用操作

请尝试执行以下查询作为替代解决方案

  db.collection.aggregate(

  // Pipeline
  [
    // Stage 1
    {
      $group: {
      _id:{name:'$name',subject:'$subject'},
      total:{$sum:1}
      }
    }

  ]
);

有关聚合的更多详细说明,请参阅以下网址

中提到的文档

https://docs.mongodb.com/manual/aggregation/