1. 程式人生 > >JAVA查詢MongoDB語句集合

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);