【MongoDB】org.springframework.data.mongodb.core.aggregation.Aggregation的使用
org.springframework.data.mongodb.core.aggregation.Aggregation
是Spring Data MongoDB提供的用于构建MongoDB聚合查询的类。以下是一个使用Aggregation
进行查询的简单示例:
假设我们有一个名为User
的MongoDB集合,并且我们想要进行一个聚合查询来找到所有年龄大于25的用户,并按照年龄进行排序。
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationResults;
import org.springframework.data.mongodb.core.aggregation.SortOperation;
import org.springframework.data.mongodb.core.query.Criteria;
import java.util.List;
public class UserService {
private final MongoTemplate mongoTemplate;
public UserService(MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}
public List<User> findUsersOlderThan25() {
Aggregation aggregation = Aggregation.newAggregation(
Aggregation.match(Criteria.where("age").gt(25)),
Aggregation.sort(SortOperation.sort("age", SortOperation.Direction.ASC))
);
AggregationResults<User> results = mongoTemplate.aggregate(aggregation, "users", User.class);
return results.getMappedResults();
}
}
class User {
// 用户属性,例如 name, age 等
}
在这个例子中,我们首先使用Aggregation.newAggregation
开始构建聚合查询。然后,我们使用Aggregation.match
来添加一个匹配阶段,它将只考虑那些年龄大于25的文档。接下来,我们使用Aggregation.sort
添加一个排序阶段,它将结果按照年龄字段升序排序。最后,我们通过调用mongoTemplate.aggregate
执行查询,并将结果转换为User
对象列表。
评论已关闭