Docs Menu
Docs Home
/ / /
Java Reactive Streams ドライバー
/ /

一括書き込み操作

v 2.6以降、 MongoDB は、ドライバーが BulkWriteResultBulkWriteExceptionの正しいセマンティクスを実装できるように、挿入、アップデート、削除操作用の一括書込みコマンドをサポートしています。

一括操作には、順序付き一括操作と順序なし一括操作の 2 種類があります。

  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>());

戻る

書込み操作