【发布时间】:2019-10-16 00:46:37
【问题描述】:
我有以下文件:
{
pmv: {
budgets: [
{
amount: 10
},
{
amount: 20
}
]
}
}
我需要对budgets 中每个对象的amount 字段求和。但也有可能budget 对象不存在,所以我需要检查一下。
我怎么能这样做?我见过很多问题,但对于预测,我只需要一个整数,在这种情况下为 30。
我该怎么做?
谢谢。
为 PUNIT 编辑 1
这是我尝试过的代码,但它给了我一个空数组
AggregationOperation filter = match(Criteria.where("pmv.budgets").exists(true).not().size(0));
AggregationOperation unwind = unwind("pmv.budgets");
AggregationOperation sum = group().sum("budgets").as("amount");
Aggregation aggregation = newAggregation(filter, unwind, sum);
mongoTemplate.aggregate(aggregation,"Iniciativas",String.class);
AggregationResults<String> aggregationa = mongoTemplate.aggregate(aggregation,"Iniciativas",String.class);
List<String> results = aggregationa.getMappedResults();
【问题讨论】:
标签: spring mongodb spring-boot aggregation