$group
- 将集合中的文档分组,可用于统计结果
- _id表示分组的依据,使用某个字段的格式为'$字段'
- 例1:统计男生、女生的总人数
db.stu.aggregate([ {$group: { _id:'$gender', counter:{$sum:1} } } ])
Group by null
- 将集合中所有文档分为一组
- 例2:求学生总人数、平均年龄
db.stu.aggregate([ {$group: { _id:null, counter:{$sum:1}, avgAge:{$avg:'$age'} } } ])
透视数据
- 例3:统计学生性别及学生姓名
db.stu.aggregate([ {$group: { _id:'$gender', name:{$push:'$name'} } } ])
- 使用$$ROOT可以将文档内容加入到结果集的数组中,代码如下
db.stu.aggregate([ {$group: { _id:'$gender', name:{$push:'$$ROOT'} } } ])