mongoDB group分组

测试数据

for(var i=1;i<20;i++){
var num=i%10;
db.test.insert({"_id":i,"name":"user_"+i,"age":num});
}
 
group分组
 
db.test.group({key:{age:true},initial:{num:0},$reduce:function(doc,prev){
prev.num++
}})
 
 
key:指定分组的键
initial:相当于计数器,统计每个组中的记录数
$reduce:这个函数有两个参数,doc代表当前文档,prev代表累加器文档(相当于本组当前的结果)
prev.num++就是每次增加一个
 
db.test.group({key:{age:true},initial:{num:0},$reduce:function(doc,prev){
prev.num++
},condition:{age:{$gt:2}}})
 
condition:分组的条件
 
 
 
db.test.group({key:{age:true},initial:{num:0},$reduce:function(doc,prev){
 
prev.num++
 
},finalize:function(doc){doc.num=doc.num*2}})
 
finalize:对分组的结果再处理,测试时让num变成原来的两倍
 
 
 
原文地址:https://www.cnblogs.com/xiaolai/p/3402959.html