Docs 菜单
Docs 主页
/ / /
Java Reactive Streams 驱动程序
/ /

批量写入操作

从 v 2.6开始, MongoDB 支持针对插入、更新和删除操作的批量写入命令,同时允许驱动程序为 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>());

后退

写入操作