【问题标题】:Bulk Update with Spring Data MongoDB Reactive使用 Spring Data MongoDB Reactive 进行批量更新
【发布时间】:2022-01-31 12:57:02
【问题描述】:

如何使用ReactiveMongoTemplate 执行bulk perations

基本上我想使用db.<collection_name>.initializeUnorderedBulkOp() 初始化批量并使用<bulk>.execute() 执行它。

我知道有一种方法可以使用简单的MongoTemplate 指定here 来执行此操作,但我找不到任何方法可以在响应式中执行此操作。

【问题讨论】:

    标签: spring-data spring-data-mongodb project-reactor bulkinsert spring-data-mongodb-reactive


    【解决方案1】:

    我终于设法使用MongoCollection.bulkWrite 方法执行批量写入。

    reactiveMongoTemplate.getCollection("assets_refs").flatMap(mongoCollection -> {
            var operations = entities.stream().map(entity -> {
                Document doc = new Document();
                reactiveMongoTemplate.getConverter().write(entity, doc);
                var filter = new Document("externalId", entity.getExternalId());
                return new UpdateOneModel<Document>(filter, new Document("$set", doc), new UpdateOptions().upsert(true));
            }).toList();
            return Mono.from(mongoCollection.bulkWrite(operations));
        })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-04
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 2019-05-02
      • 1970-01-01
      • 2019-06-19
      相关资源
      最近更新 更多