一括書き込み操作
v 2.6以降、 MongoDB は、ドライバーが BulkWriteResult
とBulkWriteException
の正しいセマンティクスを実装できるように、挿入、アップデート、削除操作用の一括書込みコマンドをサポートしています。
一括操作には、順序付き一括操作と順序なし一括操作の 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>());