MongoDBでは、 db.collection.bulkWrite()
メソッドは、実行順序のコントロールを使用して複数の書き込み操作を実行します。
一括書き込み操作は、単一のコレクションに影響します。 コレクション
partは、操作を実行するコレクションの名前です。
一括書き込み操作
db.collection.bulkWrite()
メソッドを使用して、次の書き込み操作を実行できます。
-
insertOne
-
updateOne
-
updateMany
-
replaceOne
-
deleteOne
-
deleteMany
これらのメソッドはいずれも、 db.collection.bulkWrite()
の呼び出しに含めることができます。 、同じ呼び出しにさまざまなメソッドを含めることができます。
例
db.collection.bulkWrite()
の使用例を次に示します。 pets
と呼ばれるコレクションに対して一括書き込み操作を実行します :
次のドキュメントをpets
というコレクションに挿入するとします。 :
db.pets.insertMany([
{ _id: 1, name: "Wag", type: "Dog", weight: 20 },
{ _id: 2, name: "Bark", type: "Dog", weight: 10 },
{ _id: 3, name: "Meow", type: "Cat" },
{ _id: 4, name: "Scratch", type: "Cat" },
{ _id: 5, name: "Bruce", type: "Bat" }
])
これで、 db.collection.bulkWrite()
を使用できます そのコレクションに対して一括書き込み操作を実行します。
例:
db.pets.bulkWrite([
{ insertOne: { "document": { "_id": 6, "name": "Bubbles", "type": "Fish" }}},
{ updateOne : {
"filter" : { "_id" : 2 },
"update" : { $set : { "weight" : 15 } }
} },
{ deleteOne : { "filter" : { "_id" : 5 } } },
{ replaceOne : {
"filter" : { "_id" : 4 },
"replacement" : { "name" : "Bite", "type" : "Dog", "weight": 5 }
} }
])
結果:
{ "acknowledged" : true, "deletedCount" : 1, "insertedCount" : 1, "matchedCount" : 2, "upsertedCount" : 0, "insertedIds" : { "0" : 6 }, "upsertedIds" : { } }
この場合、1つのドキュメントを挿入し、別のドキュメントを更新し、別のドキュメントを削除し、別のドキュメントを置き換えました。
db.collection.bulkWrite()
メソッドは次を返します:
- ブール値の
確認済み
true
として 操作が書き込みの懸念またはfalse
で実行された場合 書き込みの懸念が無効になっている場合。 - 各書き込み操作のカウント。
-
_id
を含む配列 正常に挿入またはアップサートされたドキュメントごとに。
結果を表示
それでは、コレクション内のドキュメントをもう一度見てみましょう。
db.pets.find()
結果:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 } { "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 15 } { "_id" : 3, "name" : "Meow", "type" : "Cat" } { "_id" : 4, "name" : "Bite", "type" : "Dog", "weight" : 5 } { "_id" : 6, "name" : "Bubbles", "type" : "Fish" }
すべての変更が指定どおりに行われたことがわかります。
注文コード> パラメータ
一括書き込み操作は、順序付けまたは順序付けなしのいずれかです。デフォルトでは、注文されています。
順序付きブールパラメータを使用して順序を指定できます。 true
の値を指定する これを操作の順序付きリストにし、 false
に設定します 順序付けられていない操作のリストになります。
操作の順序付きリストを使用して、MongoDBは操作をシリアルに実行します。書き込み操作の1つの処理中にエラーが発生した場合、MongoDBは、リスト内の残りの書き込み操作を処理せずに戻ります。
順序付けられていない操作のリストを使用すると、MongoDBは操作を並行して実行できます(ただし、これは保証されていません)。書き込み操作の1つの処理中にエラーが発生した場合、MongoDBはリスト内の残りの書き込み操作を処理し続けます。
詳細情報
db.collection.bulkWrite()
メソッドはwriteConcern
も受け入れます 引数。書き込み操作のためにMongoDBから要求される確認応答のレベルを説明します。
db.collection.bulkWrite()
については、MongoDBのドキュメントを参照してください。 詳細については。