以下是示例代码,演示如何正确使用 Aggregation Annotation:
@Document(collection = "myCollection")
public class MyDocument {
@Id
private String id;
private String name;
private Integer age;
// ... 其他属性和方法
public static Aggregation getAgeStatsAggregation() {
return Aggregation.newAggregation(MyDocument.class,
group("age").count().as("count"),
project("count").and("age").previousOperation());
}
}
// 在调用方代码中使用 Aggregation Annotation
@Autowired
MongoTemplate mongoTemplate;
public List getAgeStats() {
Aggregation agg = MyDocument.getAgeStatsAggregation();
AggregationResults result = mongoTemplate.aggregate(agg, AgeStats.class);
return result.getMappedResults();
}
在这个例子中,我们定义了一个名为 getAgeStatsAggregation() 的静态方法,以便返回一个定义了两个 Aggregation Pipeline 阶段的 Aggregation 对象。这两个阶段将使用 MongoDB 聚合操作来计算每个年龄的出现次数,然后将结果返回给我们。 getByAgeStats() 方法是我们调用 getAgeStatsAggregation() 并执行 Aggregation 操作的入口点。最后,我们将结果转换为 AgeStats 类对象并返回它们。
上一篇:AggregationandFilteringinMAQL
下一篇:AggregationDictionary中的TermAggregation与其他TermAggregation一起使用时无法正常工作