0

如何使用 执行批量操作ReactiveMongoTemplate

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

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

4

1 回答 1

0

我终于设法使用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));
    })
于 2022-01-31T14:12:06.130 回答