mongoTemplate 按播放量统计,按分类分组,分页查询
时间: 2024-04-30 13:25:14 浏览: 213
可以使用 MongoDB 的聚合操作来实现按播放量统计、按分类分组、分页查询的功能。以下是一个示例代码:
```java
public List<Document> aggregateByCategoryAndViews(int pageSize, int pageNumber) {
Aggregation aggregation = Aggregation.newAggregation(
Aggregation.group("category")
.sum("views").as("totalViews"),
Aggregation.sort(Sort.Direction.DESC, "totalViews"),
Aggregation.skip(pageSize * (pageNumber - 1)),
Aggregation.limit(pageSize)
);
AggregationResults<Document> results = mongoTemplate.aggregate(aggregation, "videos", Document.class);
return results.getMappedResults();
}
```
这段代码使用了 MongoDB 的聚合操作,首先按照分类分组,然后对每个分类的视频播放量进行求和,得到每个分类的总播放量。接着按照总播放量进行降序排序,最后通过 skip 和 limit 实现分页查询。
注意,这里使用了 MongoTemplate 类的 aggregate 方法来执行聚合操作,其中参数 aggregation 表示聚合操作的具体内容,"videos" 表示要聚合的集合名称,Document.class 表示查询结果的类型为 Document。
当然,在实际使用中,需要根据具体的数据结构和查询需求进行相应的调整和修改。
阅读全文