【问题标题】:Spring Data MongoDB: How to describe aggregation $merge with Spring Aggregation?Spring Data MongoDB:如何用 Spring Aggregation 描述聚合 $merge?
【发布时间】:2021-05-15 18:50:18
【问题描述】:
我想通过MongoTemplate执行的代码:
{
$merge: {
into: 'someCollection',
on: "_id",
whenMatched: 'merge',
whenNotMatched: 'discard'
}
}
我没有找到任何合适的方法可以让我描述$merge 阶段,怀疑Spring Data MongoDB 是否支持这个阶段?
【问题讨论】:
标签:
spring
mongodb
spring-boot
aggregation-framework
spring-data-mongodb
【解决方案1】:
是的,Spring Data MongoDB 支持$merge 阶段。
您的代码可以通过MongoTemplate执行如下方式。
MergeOperation mergeOperation = Aggregation.merge()
.intoCollection("someCollection")
.on("_id")
.whenMatched(MergeOperation.WhenDocumentsMatch.mergeDocuments())
.whenNotMatched(MergeOperation.WhenDocumentsDontMatch.discardDocument())
.build();
将此mergeOperation 与mongoTemplate 一起使用。