MongoDB的group分组操作_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > MongoDB的group分组操作

MongoDB的group分组操作

 2011/9/20 12:58:49  ljl_xyf  http://ljl-xyf.iteye.com  我要评论(0)
  • 摘要:先插入测试数据:for(vari=1;i<20;i++){varnum=i%6;db.test.insert({_id:i,name:"user_"+i,age:num});}1.普通分组查询(http://www.my400800.cn)db.test.group({key:{age:true},initial:{num:0},$reduce:function(doc,prev){prev.num++}});db.runCommand({group:{ns:"test",key:
  • 标签:操作 MongoDB
先插入测试数据: for(var i=1; i<20; i++){ ? ? var num=i%6; ? ? db.test.insert({_id:i,name:"user_"+i,age:num}); } 1.普通分组查询(http://www.my400800.cn ) db.test.group({key:{age:true},initial:{num:0},$reduce:function(doc,prev){ prev.num++ }}); db.runCommand({group: { ns:"test", key:{age:true}, initial:{num:0}, $reduce:function(doc,prev){ prev.num++} } }); 2.筛选后再分组 db.test.group({key:{age:true},initial:{num:0},$reduce:function(doc,prev){ prev.num++ }, condition:{age:{$gt:2}} }); db.runCommand({group: { ns:"test", key:{age:true}, initial:{num:0}, $reduce:function(doc,prev){ prev.num++}, condition:{age:{$gt:2}} } }); 普通的$where查询: db.test.find({$where:function(){ return this.age>2; } ? ? }); group联合$where查询 db.test.group({key:{age:true},initial:{num:0},$reduce:function(doc,prev){ prev.num++ }, condition:{$where:function(){ return this.age>2; } ? ? } }); 3.使用函数返回值分组 //注意,$keyf指定的函数一定要返回一个对象 db.test.group({$keyf:function(doc){return {age:doc.age};},initial:{num:0},$reduce:function(doc,prev){ prev.num++ } }); db.runCommand({group: { ns:"test", $keyf:function(doc){return {age:doc.age};}, initial:{num:0}, $reduce:function(doc,prev){ prev.num++} } }); 4.使用终结器 db.test.group({$keyf:function(doc){return {age:doc.age};},initial:{num:0},$reduce:function(doc,prev){ prev.num++ }, finalize: function(doc){ doc.count=doc.num;delete doc.num; } }); db.runCommand({group: { ns:"test", $keyf:function(doc){return {age:doc.age};}, initial:{num:0}, $reduce:function(doc,prev){ prev.num++}, finalize: function(doc){ doc.count=doc.num;delete doc.num; } } });
发表评论
用户名: 匿名