Reputation: 21
I wrote a shell as below which works fine in mongo console, I am wondering how to write the Java code in spring mongo. I tried many approches with no success, any help will be grateful.
db.getCollection('Application').aggregate([
{$match: {"applicationId":"2021010706001"}},
{$group: { _id: "$applicationId", mapData: { $mergeObjects: "$mapData" } } },
{$replaceRoot: { newRoot: "$mapData" } }
])
Upvotes: 1
Views: 1166
Reputation: 21
finally I have worked it out, as below:
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())
);
Upvotes: 1