Spring Data MongoDB:如何用 Spring Aggregation 描述聚合 $merge?

Posted

技术标签:

【中文标题】Spring Data MongoDB:如何用 Spring Aggregation 描述聚合 $merge?【英文标题】:Spring Data MongoDB: How to describe aggregation $merge with Spring Aggregation? 【发布时间】:2021-05-15 18:50:18 【问题描述】:

我想通过MongoTemplate执行的代码:


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

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

【问题讨论】:

是的! docs.spring.io/spring-data/mongodb/docs/current/api/org/… 【参考方案1】:

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

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

将此mergeOperationmongoTemplate 一起使用。

【讨论】:

以上是关于Spring Data MongoDB:如何用 Spring Aggregation 描述聚合 $merge?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Spring Data 中的类配置 MongoDb 集合名称

我如何用本地数据填充dockerized MongoDB?

spring data mongodb Query 及分页

Spring Data (数据)MongoDB

spring-data-mongodb中的MongoTemplate与MongoRepository

Spring Data JPA @Modifying 是不是有任何用途而不指定其属性?