spring data mongoDB原生查询

mongodb原生查询语句

db.getCollection('chillerDB').aggregate([
{$match:{'timestamp':{'$gte':1575907200000,'$lte':1575993600000},'regionId':2}},
{'$sample':{'size':49}},
{$group:
    {_id:
        {'time':'$createTime',
            'timestamp':'$timestamp',
            'chillerPower':{$sum:'$listChiller.chillerPower'},
            'frozenPumPower':{$sum:'$listFrozenPum.frozenPumPower'},
            'coolingPumpPower':{$sum:'$listCoolingPump.coolingPumpPower'},
            'coolingTowerPower':{$sum:'$listCoolingTower.coolingTowerPower'},
            'totalPower':'$totalPower',
         }
     }
},
{'$sort':{'_id.timestamp':1}},])

Java代码示例

String tableName = "chillerDB";
        String sql = "[{$match:{'timestamp':{'$gte':1575907200000,'$lte':1575993600000},'regionId':2}},{'$sample':{'size':1000}},{$group:{_id:{'time':'$createTime','timestamp':'$timestamp','chillerPower':{$sum:'$listChiller.chillerPower'},'frozenPumPower':{$sum:'$listFrozenPum.frozenPumPower'},'coolingPumpPower':{$sum:'$listCoolingPump.coolingPumpPower'},'coolingTowerPower':{$sum:'$listCoolingTower.coolingTowerPower'},'totalPower':'$totalPower',}}},{'$sort':{'_id.timestamp':1}}]";
         List<BasicDBObject> basicDBObjectList = JSONArray.parseArray(sql,BasicDBObject.class);
        AggregateIterable<Document> aggregate = mongoTemplate.getDb().getCollection(tableName).aggregate(basicDBObjectList);
        MongoCursor<Document> mongoCursor = aggregate.iterator();
        List<Document> documentList = new ArrayList<>(1000);
        while (mongoCursor.hasNext()){
            Document doc = mongoCursor.next();
            documentList.add(doc);
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。