mongoTemplate.group分组查询

     
//查询条件
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)来获取执行结果。

 

posted @ 2021-08-30 17:05  wlv1314  阅读(2426)  评论(0编辑  收藏  举报