$exists (フィールドの存在)

最終更新:2026-10-09

$exists (フィールドの存在)

$exists は、フィールドが存在するかどうかでドキュメントを絞り込みます。`{ $exists: true }` はフィールドが存在し null でないドキュメントに一致し、`{ $exists: false }` はフィールドが存在しないドキュメントに一致します。存在しないフィールドをスキップする $ne/$gt などと組み合わせて使う、欠落フィールド対策の基本ツールです。

カテゴリ要素と評価
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

{ <field>: { $exists: <boolean> } }

⚙️ パラメータ

フィールド存在をテストするドキュメントフィールド。
booleantrue は存在するフィールド、false は欠落しているフィールドにマッチします。

戻り値:一致するドキュメントのカーソル

▶ 例

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

// $exists: メールアドレスを持つユーザー
// フィールドが存在し、null でないこと
db.users.find({ email: { $exists: true } })

// email フィールドのないユーザー
db.users.find({ email: { $exists: false } })

出力:

// 1 つ目は email フィールドを持つユーザー、2 つ目は持たないユーザーを返す

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Q$exists: true は null 値に一致しますか?
Aいいえ。フィールドが存在しても値が null なら $exists: true を満たしません。$type: 10 または $eq: null を使います。
Q$exists と $ne はどう組み合わせますか?
A{ $ne: value, $exists: true } は「フィールドが存在し、かつ値が異なる」を意味し、$ne が欠落フィールドをスキップするのを防ぎます。
Q配列フィールドの存在を確認するには?
A同じパターンです: { $exists: true }。空の配列も「存在する」とみなされます。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%