次の演算子は、db.collection.updateMany() やdb.collection.findAndModify() などの更新操作で使用できます。
構文
次の形式で更新演算子を指定します。
{ <operator1>: { <field1>: <value1>, ... }, <operator2>: { <field2>: <value2>, ... }, ... }
動作
更新演算子は、string ベースの名前を持つドキュメントフィールドを辞書順に処理します。数値名のフィールドは、番号順に処理されます。
この $set コマンドの例について考えます。
{ $set: { "a.2": <new value>, "a.10": <new value>, } }
"a.2" は 2 が番号順で 10 の前にあるため、"a.10" より前に処理されます。
Array Update Modifiers
配列更新演算子
次の演算子は、配列の内容を変更します。
ビットごとの更新演算子
次の演算子は、整数値のビット単位の更新を実行します。
名前 | 説明 |
|---|---|
整数値のビット単位の |
フィールド 更新演算子
次の演算子は、ドキュメントのフィールドを変更します。
名前 | 説明 |
|---|---|
フィールドの値を、日付またはタイムスタンプとして現在の日付に設定します。 | |
フィールドの値を指定した量ずつ増加させます。 | |
指定された値が既存のフィールドの値より小さい場合にのみ、フィールドをアップデートします。 | |
指定された値が既存のフィールドの値より大きい場合にのみ、フィールドをアップデートします。 | |
フィールドの値に指定した量を乗算します。 | |
フィールドの名前を変更します。 | |
ドキュメント内のフィールドの値を設定します。 | |
アップデートの結果としてドキュメントが挿入される場合、フィールドの値を設定します。既存のドキュメントを変更するアップデート操作には影響しません。 | |
ドキュメント内の指定したフィールドを削除します。 |
位置更新演算子
次の演算子は、アップデートする配列要素を識別するためのプレースホルダーとして機能します。
名前 | 説明 |
|---|---|
クエリ条件に一致する最初の要素をアップデートするためのプレースホルダーとして機能します。 | |
クエリ条件に一致するドキュメントで、配列内のすべての要素をアップデートするためのプレースホルダーとして機能します。 | |
クエリ条件に一致するドキュメントで、 |
集計パイプラインの更新
現在のフィールド値に基づく条件付きアップデートや、別のフィールドの値を使用する単一フィールドアップデートなどの表現アップデートステートメントを作成するには、集計パイプラインを使用してアップデートを実行します。
構文と例については、集計パイプラインによる更新 を参照してください。