JAVA使用MongoTemplate聚合函数分组并排序
2021-09-01 本文已影响0人
烟雨酱南
public List<Map<String, Object>> calculationGroupOfText(String code){
Aggregation agg = Aggregation.newAggregation(Aggregation.match(Criteria.where("key").is("value").and(code).ne(null)),
Aggregation.group(code)
.first(code).as("name")
.count()
.as("num"),
Aggregation.sort(Sort.Direction.DESC,"num"),
Aggregation.limit(5));
AggregationResults<Map> res = template.aggregate(agg, "文档名", Map.class);
List<Map> resList = res.getMappedResults();
List<Map<String, Object>> list = new ArrayList<>();
for (Map map: resList) {
if (ValidationUtil.isNotEmpty(map.get("name"))){
Map<String, Object> resMap = new HashMap<>(5);
resMap.put("number",map.get("num"));
resMap.put("name",map.get("name"));
list.add(resMap);
}
}
return list;
}