mongodb - 如何在spring mongo中编写mergeObjects聚合
问题描述
我写了一个shell,它在mongo控制台中运行良好,我想知道如何在spring mongo中编写Java代码。我尝试了许多方法都没有成功,任何帮助将不胜感激。
db.getCollection('Application').aggregate([
{$match: {"applicationId":"2021010706001"}},
{$group: { _id: "$applicationId", mapData: { $mergeObjects: "$mapData" } } },
{$replaceRoot: { newRoot: "$mapData" } }
])
解决方案
最后我解决了,如下:
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())
);
推荐阅读
- python - 对象抛出多个实例,即使它是为单个实例配置的
- javascript - let 关键字在这段代码中是如何工作的?
- hyperledger-fabric - 失去与对等方的连接时,如何使fabric-network addBlockListener 自动重新连接?
- python - 在范围内循环跳过
- python - 使用现有 excel 文件的转换创建新的 excel 文件(使用 python)
- angularjs - 有什么方法可以从 1 而不是 0 启动 XAxis
- regex - 与 Notepad++ (npp) 中的模式匹配的精确文本(不是整行)
- kubernetes - 区别 pod 和部署
- android - Google Cloud Platform Firebase Installations Api 仅显示错误
- python - 在线性规划中设置一组变量的最小值