$unset (フィールド削除)

最終更新:2026-10-09

$unset (フィールド削除)

$unset は、ドキュメントから指定したフィールドを削除し、他はすべて保持します。{ $project: { field: 0 } } の省略記法で、複数フィールドを一度に削除でき、ドット記法でネストしたパスも指定できます。パスワードやトークンなどの機密フィールドの除去や、中間フィールドの掃除に便利です。

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

📝 構文

{ $unset: "<field>" } or { $unset: [ "<field1>", "<field2>" ] }

⚙️ パラメータ

フィールド削除するフィールド名、またはフィールド名の配列。

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

▶ 例

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

// $unset: 機密フィールドとネストしたカード番号を削除
db.users.aggregate([
  { $unset: ['password', 'token', 'detail.card'] }
])

出力:

// ドキュメントから password、token、detail.card がなくなる

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Q$unset は埋め込みフィールドを削除できますか?
Aはい。'detail.card' のようなドットパスでサブフィールドを指定します。
Q$unset と $project での削除はどう違いますか?
A実質同じです。$unset はゼロ射影の糖衣構文で、多数のフィールドを扱いやすくします。
Q$unset が存在しないフィールドを指定したら?
Aエラーになりません。ドキュメントはそのまま通ります。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%