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)来获取执行结果。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM