我是 MongoDB 的新手。经过大量搜索后,我应用了如下聚合操作,它按预期工作:
AggregateIterable<Document> summary= collection.aggregate(
Arrays.asList(
Aggregates.match(Filters.eq("financialEventType", "REFUND")),
Aggregates.group("_id",
Accumulators.sum("revenueHeader_Principal","$revenueHeader.Principal"),
Accumulators.sum("revenueHeader_ProductTax","$revenueHeader.Product Tax"),
Accumulators.sum("revenueHeader_Shipping","$revenueHeader.Shipping"),
Accumulators.sum("revenueHeader_ShippingTax","$revenueHeader.Shipping Tax"),
Accumulators.sum("revenueHeader_GiftWrap","$revenueHeader.Gift Wrap"),
Accumulators.sum("revenueHeader_GiftWrapTax","$revenueHeader.Gift Wrap Tax"),)
));
LinkedHashMap<String, BigDecimal> revenueSummary = new LinkedHashMap<String, BigDecimal>();
现在我想以特定顺序将这些值保存在收入摘要中。但是我如何遍历摘要或按名称访问项目?