$[] (全配列要素の更新)

最終更新:2026-10-09

$[] (全配列要素の更新)

$[] は、配列のすべての要素を更新する位置演算子です。`{ $set: { 'grades.$[]': 90 } }` で全グレードを 90 に設定します。arrayFilters と組み合わせると条件に一致する要素だけを更新し、使わなければすべてを更新します。$[] は更新文でのみ使えます — クエリでは $elemMatch を使います。

カテゴリ更新修飾子
MongoDB バージョン3.6+
例の言語mongosh(シェル)

📝 構文

{ <update operator>: { '<array field>.$[]': <value> } }

⚙️ パラメータ

配列フィールド全体を更新する配列フィールド。
値すべての要素に適用される値。

戻り値:更新結果

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// $[]: 全グレードを 90 に設定
db.students.updateOne(
  { _id: 1 },
  { $set: { 'grades.$[]': 90 } }
)

// ネストした配列でも $[] を使う
// 各レベルを指定
db.students.updateOne(
  { _id: 1 },
  { $set: { 'scores.$[].math': 100 } }
)

出力:

// 全グレードが 90 になる。2 つ目の例は各スコアの math を 100 に設定する

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Q$[] と $ の違いは?
A$ は最初に一致した要素を更新します。$[] はすべての要素を更新します。
Q$[] は条件付きで使えますか?
A条件付きにするには $[identifier] と arrayFilters を使います。$[] は無条件にすべてを更新します。
Q$[] はクエリで使えますか?
Aいいえ。更新文専用です。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%