//查詢條件
Criteria criteria = Criteria.where("version").is("202101011020"); criteria.andOperator(Criteria.where("packageStatus").is("0")); GroupBy groupBy=new GroupBy("province").initialDocument("{collection:[]}").reduceFunction("function(doc,pre){pre.collection.push({creationTime:doc.creationTime,cardId:doc.cardId,type:NumberInt(doc.type),status:NumberInt(doc.status)});}"); GroupByResults<MappedResult> results = mongoTemplate.group(criteria, "CARD_BLACK_DETAIL", groupBy, MappedResult.class); //province:分組的key
//initialDocument:分組后結果
//reduceFunction:想要返回的字段值,doc為源數據,pre為分組后要顯示的數據
//MappedResult可以使用Document直接代替
如果要使用自定義的實體時,實體必須要和GroupByResults返回的要一致,即:分組的key:province和返回的結果collection,
見下圖,否則的話查詢出的mappedResults會為空,
如果不使用mappedResults也可以通過results.getRawResults().get("retval", ArrayList.class)來獲取執行結果。