mongoTemplate分组后取每组中最新的一条数据
时间: 2024-05-02 13:18:52 浏览: 130
可以使用MongoDB的聚合框架来实现。具体步骤如下:
1. 使用MongoTemplate的aggregate方法创建聚合管道:
```java
Aggregation agg = Aggregation.newAggregation(
Aggregation.group("groupField"),
Aggregation.sort(Sort.Direction.DESC, "sortField"),
Aggregation.limit(1)
);
```
其中,groupField表示分组字段,sortField表示排序字段。
2. 使用MongoTemplate的aggregate方法执行聚合管道,并返回结果:
```java
AggregationResults<ResultType> results = mongoTemplate.aggregate(agg, "collectionName", ResultType.class);
List<ResultType> resultList = results.getMappedResults();
```
其中,ResultType是返回结果的类型,collectionName是集合名称。
以上代码会返回每个分组中sortField最大的一条数据。如果需要返回最小的一条数据,只需将sortField的排序方向改为ASC即可。
阅读全文