JAVA使用MongoTemplate聚合函数分组并排序

    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;
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容