Docs Menu
Docs Home
/
MongoDB マニュアル
/ / /

db.collection.initializeOrderedBulkOp()

項目一覧

  • 定義
  • 動作

Tip

MongoDB は、一括書込み操作を実行するための db.collection.bulkWrite() メソッドも提供します。

db.collection.initializeOrderedBulkOp()

重要

mongosh メソッド

このページでは、 mongosh メソッドが文書化されます。これは Node.js などの言語固有のドライバーのドキュメントではありません

MongoDB API ドライバーについては、各言語の MongoDB ドライバー ドキュメントを参照してください。

コレクションの新しいBulk()操作ビルダを初期化して返します。 ビルダは、MongoDB が一括して実行する書込み (write) 操作の順序付きリストを作成します。

次の値を返します。新しいBulk()操作ビルダ オブジェクト。

順序付きの操作リストの場合、MongoDB はリスト内の書込み操作を順番に実行します。

orderedリストの操作を実行する場合、MongoDB は操作をoperation typeと連続性によってグループ化します。つまり、同じタイプの連続した操作がグループ化されます。 たとえば、順序付きリストに 2 回の挿入操作があり、その後に更新操作、さらに別の挿入操作が続く場合、MongoDB は操作を 3 つのグループに分けます。最初のグループには 2 回の挿入操作、2 番目のグループには更新操作、3 番目のグループにはには、最後の挿入操作が含まれます。 この動作は、将来のバージョンで変更される可能性があります。

Bulk(){ のmongosh 操作とドライバーの同等のメソッドでは、グループ内の操作数に制限はありません。一括操作実行用に操作がどのようにグループ化されているかを確認するには、実行Bulk.getOperations() に呼び出します。

Tip

以下も参照してください。

シャーディングされたコレクションで操作のorderedリストを実行すると、通常、 unorderedリストの実行よりも時間がかかります。これは、ordered リストでは毎回の操作で前の操作の完了を待機する必要があるためです。

いずれかの書込み操作の処理中にエラーが発生した場合、MongoDB はリスト内の残りの書込み操作を処理せずに返します。

以下の例では、 usersコレクションでBulk()操作ビルダを初期化し、一連の書込み操作を追加して操作を実行します。

var bulk = db.users.initializeOrderedBulkOp();
bulk.insert( { user: "abc123", status: "A", points: 0 } );
bulk.insert( { user: "ijk123", status: "A", points: 0 } );
bulk.insert( { user: "mop123", status: "P", points: 0 } );
bulk.find( { status: "D" } ).delete();
bulk.find( { status: "P" } ).update( { $set: { comment: "Pending" } } );
bulk.execute();

戻る

一括操作

項目一覧