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;
    }
上一篇下一篇

猜你喜欢

热点阅读