例1:


db.test_table.aggregate({$match:{e_count:{$gt:0}}}, {$project:{_id:0, e_count:1}}, {$group:{_id:null, count:{$sum:"$e_count"}}} )


说明:

1. 先找到所有e_count > 0的记录

2.只选择记录中的e_count项

3.对所有的e_count项求和。 $group中_id为null时就表示选所有数据


例2:


db.test.aggregate({$match:{"action":"add"}},{$group:{_id:"$test_id", count:{$sum:1}}}, {$match:{"count":{$gt:1}}},{$group:{_id:null,count:{$sum:1}}})


1.找到表test中所有"action"="add"的记录

2.对test_id项做聚合,统计数量

3.找出数量大于1的记录

4.统计记录数量

总结一下,上面的语句就是查找 test_id相同的记录中,"action"="add"大于等于2次的,总的test_id数量


{$sort:{_id:-1}} :按_id倒序输出