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;
}
JAVA使用MongoTemplate聚合函数分组并排序
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 一、概述 有这样一个需求,在一个list集合中的对象有相同的name,我需要把相同name的对象的total进行汇...
- 一、聚合函数 1、为了快速得到统计数据,经常会用到如下5个聚合函数 count(*)表示计算总行数,括号中写星与列...
- DQL:查询语句 排序查询语法:order by 字句order by 排序字段1 排序方式1, 排序字段2 排序...
- where 相关的子句构造完成后,我们继续构造其它子句。这一篇我们进行聚合函数、分组、排序等子句的构造。 聚合函数...