Spring数据MongoDB:如何用Spring聚合描述聚合$merge?

Spring Data MongoDB: How to describe aggregation $merge with Spring Aggregation?

我要执行的代码 MongoTemplate:

{
    $merge: {
        into: 'someCollection',
        on: "_id",
        whenMatched: 'merge',
        whenNotMatched: 'discard'
    }
}

我没有找到任何合适的方法来描述 $merge 阶段,怀疑 Spring Data MongoDB 是否支持这个阶段?

是的,Spring Data MongoDB 支持 $merge 阶段。 您的代码可以通过 MongoTemplate 以下方式执行。

MergeOperation mergeOperation = Aggregation.merge()
        .intoCollection("someCollection")
        .on("_id")
        .whenMatched(MergeOperation.WhenDocumentsMatch.mergeDocuments())
        .whenNotMatched(MergeOperation.WhenDocumentsDontMatch.discardDocument())
        .build();

将此 mergeOperationmongoTemplate 一起使用。