mongoTemplate实现统计文档中对象数量
时间: 2024-03-01 16:49:49 浏览: 77
mongoTemplate实现统计和分组
4星 · 用户满意度95%
要统计文档中某个对象的数量,可以使用MongoTemplate的aggregate方法,并结合MongoDB的聚合操作符$size和$sum来实现。
假设我们有一个文档集合,其中每个文档中都包含一个名为“items”的数组,我们想要统计每个文档中“items”数组的长度,即每个文档中包含的对象数量。
可以使用以下代码来实现:
```
Aggregation aggregation = Aggregation.newAggregation(
Aggregation.project("items"),
Aggregation.project().and("items").size().as("itemCount"),
Aggregation.group().sum("itemCount").as("totalCount")
);
AggregationResults<DBObject> results = mongoTemplate.aggregate(aggregation, "collectionName", DBObject.class);
DBObject dbObject = results.getUniqueMappedResult();
int totalCount = (int) dbObject.get("totalCount");
```
其中,第一个project操作将只保留“items”字段,第二个project操作使用$size操作符计算数组长度,并将结果命名为“itemCount”字段。最后一个group操作将所有文档的“itemCount”字段相加,并将结果命名为“totalCount”字段。
这样就可以获取到每个文档中对象数量的总和了。
阅读全文