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

Bulk.find.update()

項目一覧

  • 説明

Tip

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

Bulk.find.update(<update>)

一括操作リストに multi アップデート操作を追加します。このメソッドは、既存のドキュメントの特定のフィールドをアップデートします。

Bulk.find()メソッドを使用して、アップデートするドキュメントを決定する条件を指定します。 Bulk.find.update()メソッドは、一致するすべてのドキュメントをアップデートします。 1 つのドキュメントのアップデートを指定するには、 Bulk.find.updateOne()を参照してください。

Bulk.find.update() は、次のパラメーターを受け入れます。

Parameter
タイプ
説明
ドキュメントまたはパイプライン

適用される変更内容。次のいずれかになります。

Update document
更新演算子式のみが含まれます。
Aggregation Pipeline

次の集計ステージのみが含まれます。

update 変更パラメーターの詳細については、db.collection.updateMany() のリファレンス ページを参照してください。

Bulk.find() からの関連 <query> ドキュメントと更新ドキュメントの合計は、BSON ドキュメントの最大サイズ以下である必要があります。

次の例では、 itemsコレクションでBulk()操作ビルダを初期化し、さまざまなmultiアップデート操作を操作リストに追加します。

var bulk = db.items.initializeUnorderedBulkOp();
bulk.find( { status: "D" } ).update( { $set: { status: "I", points: "0" } } );
bulk.find( { item: null } ).update( { $set: { item: "TBD" } } );
bulk.execute();

更新メソッドは集計パイプラインを受け入れることができます。 たとえば、次の例では次のものが使用されています。

  • $set ステージは、$set 更新演算子式と同様に動作します。

  • 集計変数 NOW は現在の日時を解決し、$currentDate 更新演算子式と同様に動作します。集計変数にアクセスするには、変数の前に二重ドル記号 $$ を付け、引用符で囲みます。

var bulk = db.items.initializeUnorderedBulkOp();
bulk.find( { status: "P" } ).update(
[
{ $set: { points: 0, lastModified: "$$NOW" } }
]
);
bulk.execute();

Tip

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

戻る

Bulk.find.updateOne

項目一覧