aggregate
1. 經(jīng)小直親測,aggregate的sum,avg操作只對集合內(nèi)的數(shù)字起作用,字符串會過濾掉哦~
2. aggregate使用的是mongodb內(nèi)置操作,聚合效率比mapreduce高,并且不需要自定義的javascript,詳細(xì)解析看MongoDB aggregate,mapreduce,聚合命令的區(qū)別
以下舉幾個例子,詳細(xì)操作看官網(wǎng)
consume集合內(nèi)有user_id,amount,date字段
查詢2016-06-15金額總數(shù)
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總條數(shù)
db.consume.aggregate([
{$match:{"date":"2016-06-15"}},
{$group:{"_id":null,count:{$sum:1}}}
])