Mongodb 聚合管道aggregate pipeline
2016-06-21 本文已影响257人
小直
aggregate
1. 经小直亲测,aggregate的sum,avg操作只对集合内的数字起作用,字符串会过滤掉哦~
2. aggregate使用的是mongodb内置操作,聚合效率比mapreduce高,并且不需要自定义的javascript,详细解析看MongoDB aggregate,mapreduce,聚合命令的区别
以下举几个例子,详细操作看官网
consume集合内有user_id,amount,date字段
查询2016-06-15金额总数
db.consume.aggregate([
{$match:{"date":"2016-06-15"}},
{$group:{"_id":null,total_amount:{$sum:"$amount"}}}
])
计算2016-06-15不同用户的总金额
db.consume.aggregate([
{$match:{"date":"2016-06-15"}},
{$group:{"_id":"$user_id",total_amount:{$sum:"$amount"}}}
])
查询2016-06-15总条数
db.consume.aggregate([
{$match:{"date":"2016-06-15"}},
{$group:{"_id":null,count:{$sum:1}}}
])