【mongo】聚合相关资料

一个很好的博客: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: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倒序输出

原文地址:https://www.cnblogs.com/dplearning/p/6208968.html