【问题标题】:how to write mergeObjects aggregation in spring mongo如何在spring mongo中编写mergeObjects聚合
【发布时间】:2021-01-07 09:18:59
【问题描述】:
我写了一个shell,它在mongo控制台中运行良好,我想知道如何在spring mongo中编写Java代码。我尝试了很多方法都没有成功,任何帮助将不胜感激。
db.getCollection('Application').aggregate([
{$match: {"applicationId":"2021010706001"}},
{$group: { _id: "$applicationId", mapData: { $mergeObjects: "$mapData" } } },
{$replaceRoot: { newRoot: "$mapData" } }
])
【问题讨论】:
标签:
mongodb
spring-data-mongodb
【解决方案1】:
终于搞定了,如下:
Aggregation aggregation = Aggregation.newAggregation(
Aggregation.match(Criteria.where("applicationId").is(applicationId)),
Aggregation.group("applicationId").addToSet("mapData").as("mapData"),
Aggregation.project("mapData"),
Aggregation.replaceRoot().withValueOf(
ObjectOperators.valueOf("mapData").merge())
);