$set (フィールド設定)

最終更新:2026-10-09

$set (フィールド設定)

$set は、ドキュメント内の 1 つ以上のフィールドに値を代入(または上書き)します。フィールドが存在しない場合は作成され、ネストしたフィールドにはドット記法のパスが使えます。最もよく使われる更新演算子です。`{ $set: { "price": 19.99, "inStock": true } }` のように複数フィールドを一度に設定できます。

カテゴリフィールド更新
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

{ $set: { <field1>: <value1>, <field2>: <value2>, ... } }

▶ 例

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

// $set: 複数フィールドを設定
db.products.updateOne(
  { _id: 1 },
  { $set: { price: 19.99, inStock: true } }
)

出力:

// updatedCount: 1 が返る。price は 19.99、inStock は true になる

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Q$set と $inc は一緒に使えますか?
Aはい。$set は固定値を代入し、$inc は算術演算を行います。同じフィールドでなければ 1 つの update に両方書けます。
Q$set と update での単純な代入の違いは?
A$set は指定したフィールドだけを更新し、ドキュメントの残りには触れません。ドキュメント全体を置き換えるには replaceOne を使いますが、こちらは指定していないフィールドがすべて消えます。
Q$set は既存フィールドを上書きしますか?
Aはい。既存フィールドは新しい値で上書きされ、存在しないフィールドは作成されます。冪等で、同じ $set を繰り返しても結果は同じです。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%