У меня есть следующий документ:
{
pmv: {
budgets: [
{
amount: 10
},
{
amount: 20
}
]
}
}
и мне нужно суммировать поле amount
для каждого объекта в budgets
. Но также возможно, что объект budget
не существует, поэтому мне нужно проверить это.
Как я мог это сделать? Я видел много вопросов, но с прогнозами мне просто нужно целое число, которое в этом случае было бы 30.
Как я могу это сделать?
Спасибо.
РЕДАКТИРОВАТЬ 1 ДЛЯ PUNIT
Это код, который я пробовал, но он дает мне и пустой aray
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();