例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倒序输出