spring data es实现方式:
TypedAggregation agg = Aggregation.newAggregation(
Album.class,
Aggregation.project("id","albumName","coverImgId").and("countRead").plus("countComment").plus("countLike").as("polular"),
Aggregation.sort(Sort.Direction.DESC,"popular"),
Aggregation.skip (page),
Aggregation.limit(pageSize));
AggregationResults results=mongoTemplate.aggregate(agg, PoplularAlbumDto.class);
解析:.project()里可指定要查询的字段,还可以使用一些字段的加减乘除运算出一个新的字段,上面的是“countRead”,"countComment","countLIke"这几个字段的和作为一个新的字段“polular”,并按popular降序排序,skip代表页码,limit代表分页大小;