38.7.4. 批量写操作


38.7.4.1. bulkWrite

在批量执行写入操作时,使用控制顺序执行。需要 List<WriteModel<Document >> 作为 IN 消息正文,其中包含插入、更新和删除操作的命令。

以下示例将插入一个新的科学家"Pierre Curie",通过将"scientist"字段的值设置为"Marie Curie"并删除 ID 为"3"的记录来更新记录:

// route: from("direct:bulkWrite").to("mongodb:myDb?database=science&collection=notableScientists&operation=bulkWrite");
List<WriteModel<Document>> bulkOperations = Arrays.asList(
            new InsertOneModel<>(new Document("scientist", "Pierre Curie")),
            new UpdateOneModel<>(new Document("_id", "5"),
                                 new Document("$set", new Document("scientist", "Marie Curie"))),
            new DeleteOneModel<>(new Document("_id", "3")));

BulkWriteResult result = template.requestBody("direct:bulkWrite", bulkOperations, BulkWriteResult.class);
Copy to Clipboard Toggle word wrap

默认情况下,操作按顺序执行,并在第一个写入错误上中断,而不处理列表中任何剩余的写操作。要指示 MongoDB 继续处理列表中剩余的写入操作,请将 CamelMongoDbBulkOrdered IN 消息标头设置为 false。未排序的操作是并行执行的,此行为无法保证。

Expand
标头键快速持续描述(从 MongoDB API 文档中提取)预期类型

CamelMongoDbBulkOrdered

MongoDbConstants.BULK_ORDERED

执行有序或未排序的操作执行。默认值为 true。

boolean/Boolean

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat