文档菜单
文档首页
/ / /
Java 反应式流驱动程序
/ /

批量写入操作

从 v2.6 版本开始,MongoDB 支持批量写入命令,用于插入、更新和删除操作,允许驱动程序实现 BulkWriteResultBulkWriteException 的正确语义。BulkWriteResultBulkWriteException

批量操作有两种类型:有序和无序批量操作

  1. 有序批量操作按顺序执行所有操作,并在第一次写入错误时出错。

  2. 无序批量操作执行所有操作并报告任何错误。无序批量操作不保证执行顺序。

重要

本指南使用 Subscriber 实现,这些实现已在 快速入门指南 中描述。快速入门指南.

以下代码提供了使用有序和无序操作的示例

// Ordered bulk operation - order is guaranteed
collection.bulkWrite(
Arrays.asList(new InsertOneModel<>(new Document("_id", 4)),
new InsertOneModel<>(new Document("_id", 5)),
new InsertOneModel<>(new Document("_id", 6)),
new UpdateOneModel<>(new Document("_id", 1),
new Document("$set", new Document("x", 2))),
new DeleteOneModel<>(new Document("_id", 2)),
new ReplaceOneModel<>(new Document("_id", 3),
new Document("_id", 3).append("x", 4))))
.subscribe(new ObservableSubscriber<BulkWriteResult>());
// Unordered bulk operation - no guarantee of order of operation
collection.bulkWrite(
Arrays.asList(new InsertOneModel<>(new Document("_id", 4)),
new InsertOneModel<>(new Document("_id", 5)),
new InsertOneModel<>(new Document("_id", 6)),
new UpdateOneModel<>(new Document("_id", 1),
new Document("$set", new Document("x", 2))),
new DeleteOneModel<>(new Document("_id", 2)),
new ReplaceOneModel<>(new Document("_id", 3),
new Document("_id", 3).append("x", 4))),
new BulkWriteOptions().ordered(false))
.subscribe(new ObservableSubscriber<BulkWriteResult>());

返回

写入操作