JAVA查询MongoDB语句集合

mongo分组查询集合语句:

var docs=db['Ali.GPRS.group.20180519'].aggregate({'$group':{'_id':'$_id','downVolume':{'$sum':'$downVolume'},'upVolume':{'$sum':'$upVolume'}}});

docs.forEach(function(d){db['Ali.GPRS.group.20180520'].insert(d)});

Java语句,例子如下:

DBCollection collection = MongoKit.getCollection(collectionName);
        Date startTime = new Date(DateUtils.parseDate(startTimeStr, "yyyy-MM-dd HH:mm:ss").getTime());
        Date endTime = new Date(DateUtils.parseDate(endTimeStr, "yyyy-MM-dd HH:mm:ss").getTime());

        BasicDBList subStartTimeList = new BasicDBList();
        subStartTimeList.add("$CREATE_TIME");
        subStartTimeList.add(startTime);
        BasicDBObject subStartTimeObject = new BasicDBObject("$subtract", subStartTimeList);

        BasicDBList modList = new BasicDBList();
        modList.add(subStartTimeObject);
        modList.add(1000 * 60 * 60);
        BasicDBObject modObject = new BasicDBObject("$mod", modList);

        BasicDBList subList = new BasicDBList();
        subList.add(subStartTimeObject);
        subList.add(modObject);

        BasicDBObject matchTime = new BasicDBObject("CREATE_TIME", new BasicDBObject("$gte", startTime)
            .append("$lte", endTime)).append("SERVICE_NAME", SerivceName);
        DBObject match = new BasicDBObject("$match", matchTime);
        DBObject groupFields = new BasicDBObject("_id", new BasicDBObject("time",
            new BasicDBObject("$subtract", subList)));
        groupFields.put("count", new BasicDBObject("$sum", 1));
        groupFields.put("createTime", new BasicDBObject("$first", new BasicDBObject("$dateToString",
            new BasicDBObject("format", "%H").append("date", "$CREATE_TIME"))));
        groupFields.put("success", new BasicDBObject("$push", "$STATUS_CODE"));
        DBObject group = new BasicDBObject("$group", groupFields);

        BasicDBObject sort=new BasicDBObject("$sort",new BasicDBObject("createTime",1));

        List<DBObject> sqllist = new ArrayList<DBObject>();
        sqllist.add(match);
        sqllist.add(group);
        sqllist.add(sort);
        logger.info("_______________________{}", sqllist);
        //从Mongo中查寻数据
        AggregationOutput output = collection.aggregate(sqllist);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值