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

    public List> 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 res = template.aggregate(agg, "文档名", Map.class);
        List resList = res.getMappedResults();
        List> list = new ArrayList<>();
        for (Map map: resList) {
            if (ValidationUtil.isNotEmpty(map.get("name"))){
                Map resMap = new HashMap<>(5);
                resMap.put("number",map.get("num"));
                resMap.put("name",map.get("name"));
                list.add(resMap);
            }
        }
        return list;
    }

你可能感兴趣的:(JAVA使用MongoTemplate聚合函数分组并排序)