Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.0k views
in Technique[技术] by (71.8m points)

mongodb - how to write mergeObjects aggregation in spring mongo

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" } }
])

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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())
        );

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...