一个很好的博客:http://www.cnblogs.com/shanyou/p/3494854.html

官网:https://docs.mongodb.com/manual/reference/operator/aggregation/sum/#grp._S_sum

例1:

db.test_table.aggregate({$match:{e_count:{$gt:}}}, {$project:{_id:, e_count:}}, {$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:}}}, {$match:{"count":{$gt:}}},{$group:{_id:null,count:{$sum:}}})

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

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

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

4.统计记录数量

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

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

04-11 23:28
查看更多