首页 > 解决方案 > 如何在spring mongo中编写mergeObjects聚合

问题描述

我写了一个shell,它在mongo控制台中运行良好,我想知道如何在spring mongo中编写Java代码。我尝试了许多方法都没有成功,任何帮助将不胜感激。

db.getCollection('Application').aggregate([

  {$match: {"applicationId":"2021010706001"}},
  {$group: { _id: "$applicationId", mapData: { $mergeObjects: "$mapData" } } },
  {$replaceRoot: { newRoot: "$mapData" } }
])

标签: mongodbspring-data-mongodb

解决方案


最后我解决了,如下:

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

推荐阅读