插入数据:
db.test.insert({name:'zs', count:5})
db.test.insert({name:'zs', count:6})
db.test.insert({name:'zs', count:7})
db.test.insert({name:'ls', count:7})
db.test.insert({name:'ls', count:2})
按照name进行分组:
db.runCommand({"group" : {
"ns":"test",
"key": {"name":true},
"initial":{"count":0},
"$reduce":function(doc, prev){
prev.count+=doc.count
}
}})
返回结果:
{
"retval" : [
{
"name" : "zs",
"count" : 23
},
{
"name" : "ls",
"count" : 14
}
],
"count" : 7,
"keys" : 2,
"ok" : 1
}
另一种查询方法(添加了查询条件):
db.test.group({
cond: {"name":"zs"},
key : {"name" : true},
initial : {"count":0},
reduce : function(doc, prev){
prev.count+=doc.count
}
})
[ { "name" : "zs", "count" : 18 } ]