spring data mongodb之Aggregation操作

TypedAggregation agg = Aggregation.newAggregation(Role.class,
                Aggregation.group("name").   //以name字段分组
                        sum("age").as("agesum"). //统计age的和并用agesum表示
                        first("age").as("agefirst"). //查出最小的年龄并用agefirst表示
                        addToSet("age").as("agess")  //把出现的所有年龄都加到set集合并用agess表示
                );
      
//UpdateScoreDto为自定义对象,把上面查出来的结果封装起来。
AggregationResults results=mongoTemplate.aggregate(agg,UpdateScoreDto.class); 
List list= results.getMappedResults();
查询结果如下所示
Document{{_id=zhang1, agesum=11, agefirst=5, agess=[6, 5]}}
Document{{_id=zhang2, agesum=6, agefirst=6, agess=[6]}}

参考:https://blog.csdn.net/qq_35720307/article/details/80930057

转载于:https://my.oschina.net/u/3734816/blog/3079364

你可能感兴趣的:(spring data mongodb之Aggregation操作)