mongodb group 查询

mongodb的group查询
1,根据vfrom查询 类似mysql的 select sum(rmb) from charge_unkilled group by vfrom;

db.charge_unkilled.group({
       key:{vfrom:true},
       initial:{num:0,sum:0},
       $reduce:function(doc,prev){
          prev.num++;
          prev.sum = prev.sum+Number(doc.rmb);--数字相加
       },
       condition:{rmb:{'$regex':'^[0-9]*$'}} --正则表达式判断rmb是数字
      });

2,根据addTime查询,类似mysql的 select sum(rmb) from charge_unkilled group by DATE_FORMAT(addTime,’%m-%d-%Y’);

db.charge_unkilled.group({
    $keyf:function(doc){
       var date = doc.addTime.substring(0,10);--根据时间查询
       return {dd:date};
    },
    initial:{num:0,sum:0},
    $reduce:function(doc,prev){
             prev.num++;
             prev.sum = prev.sum+Number(doc.rmb);--数字相加
    },
    condition:{rmb:{'$regex':'^[0-9]*$'}} --正则表达式判断rmb是数字
});

3,类似mysql的 select sum(rmb) from charge_unkilled where (addTime between ‘2016-3-15’ and ‘2016-3-22’) group by DATE_FORMAT(addTime,’%m-%d-%Y’);

db.charge_unkilled.group({
    $keyf:function(doc){
       var date = doc.addTime.substring(0,10);
       return {dd:date};
    },
    initial:{num:0,sum:0},
    $reduce:function(doc,prev){
       prev.num++;
       prev.sum = prev.sum+Number(doc.rmb);
    },
    condition:{
         $where:function(){
                var start = new Date("2016-3-15");
                var end = new Date("2016-3-22");
                var date = new Date(this.addTime);
                return date>start && date<end;
         }
    }
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值