mongotemplate aggregate sum

MongoTemplate 是 Spring Data MongoDB 提供的用于操作 MongoDB 数据库的工具类。它支持使用 aggregate 方法进行聚合查询,其中可以使用 $sum 操作符对字段求和。

下面是一个简单的示例,展示如何使用 MongoTemplate 的 aggregate 方法对 orders 集合中的 price 字段求和。

List<AggregationOperation> operations = new ArrayList<>();
operations.add(Aggregation.group().sum("price").as("totalPrice"));
Aggregation aggregation = Aggregation.newAggregation(operations);
AggregationResults<Document> result = mongoTemplate.aggregate(aggregation, "orders", Document.class);
Document doc = result.getUniqueMappedResult();
double totalPrice = doc.getDouble("totalPrice");

其中,Aggregation.group().sum("price").as("totalPrice") 是对 price 字段进行求和并将结果命名为 totalPrice

注意,需要注意的是需要先在pom.xml里面引入mongodb的包

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-mongodb</artifactId>
    <version>x.x.x</version>
</dependency>

此外,在使用聚合查询之前,需要在Mongodb中开启聚合查询的功能,在配置文件中加入

setParameter = aggregate=true
              逃离月球表面
        
5年前