码迷,mamicode.com
首页 > 数据库 > 详细

MongoDB group 数据不同字段distinct问题解决办法

时间:2014-07-10 00:16:14      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   数据   2014   

近日被mongoDB的聚合难住了,条件:

1、表中有字段mac,pv,ip,dates,type

2、要求,根据ip来group,计算pv合计,不重复的mac数,不重复的ip数

3、下面是解决办法,说明:MongoDB权威指南中使用的是对象,即"macs":{},然后在reduce里面用 in来查找,prev.macs[obj.mac]=""来添加,容易出现Unexpected number错误

     现在改成数组,并且在finalize 中清除,感觉很方便

 1 db.test.group({
 2     "key":"ip",
 3     "initial":{"mac":0,"pv":0,"ip":0,"macs":[],"ips":[]},
 4     "$reduce":function(obj,prev){
 5         if(prev.macs.indexOf(obj.mac)<0){
 6             prev.mac = prev.macs.push(obj.mac);
 7         }
 8         if(prev.ips.indexOf(obj.ip)<0){
 9             prev.ip = prev.ips.push(obj.ip);
10         }
11         prev.pv+=obj.pv;
12     },
13     "finalize":function(prev){
14         prev.macs=[];
15         prev.ips=[];
16     },
17     "condition":{"dates":"2014-05-09","type":"type1"}
18 });

 如果有更好的办法,烦请留言,共同探讨

MongoDB group 数据不同字段distinct问题解决办法,布布扣,bubuko.com

MongoDB group 数据不同字段distinct问题解决办法

标签:style   blog   color   使用   数据   2014   

原文地址:http://www.cnblogs.com/hanyoujun/p/3812503.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!