$set (フィールド設定)

最終更新:2026-10-09

$set (フィールド設定)

$set は $addFields の別名です: 各ドキュメントにフィールドを追加・上書きし、他はすべて保持します。パイプライン途中で計算値や定数、式の結果を付け加えるのに使います。MongoDB 3.4 で導入され、$addFields と完全に相互互換です。なお、$set 更新演算子と同じ名前なので注意してください。

カテゴリコアステージ
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

{ $set: { <field>: <expression>, ... } }

⚙️ パラメータ

フィールドフィールド名を集計式または定数値にマッピングします。

戻り値:フィールドを設定したドキュメントストリーム

▶ 例

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

// $set: 定数ステータスを追加し、amount の型を変換
db.orders.aggregate([
  { $set: { status: 'PENDING', amount: { $toDouble: '$amount' } } }
])

出力:

// 元のフィールドは保持され、status は定数、amount は double に変換される

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q$set と $addFields はどちらを使うべきですか?
Aどちらでも動きます。$addFields の方が一般的で、$set は更新演算子と混同されることがあります。
Q$set で埋め込みフィールドを設定できますか?
Aはい。ドットパスで指定します。例: { $set: { 'addr.city': 'SH' } }
Q$set はフィールドを削除できますか?
Aいいえ。追加・上書きのみで、削除には $unset を使います。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%