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

Bulk.find.updateOne()

項目一覧

  • 説明
  • 動作

Tip

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

Bulk.find.updateOne(<update>)

一括操作リストに 1 つのドキュメントのアップデート操作を追加します。

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

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

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

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

置換ドキュメント

フィールドと値のペアのみが含まれます。

Bulk.find.replaceOne() も参照してください。

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

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

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

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

<update>ドキュメントに更新演算子式のみが含まれている場合は、次のようになります。

{
$set: { status: "D" },
$inc: { points: 2 }
}

次に、 Bulk.find.updateOne()はドキュメント内の対応するフィールドであるstatuspointsのみを更新します。

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

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

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

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

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

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

Tip

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

戻る

Bulk.find.replaceOne

項目一覧