$not (論理否定)

最終更新:2026-10-09

$not (論理否定)

$not は演算子式を否定し、内側の条件を満たさないドキュメントを返します。`{ price: { $not: { $gt: 50 } } }` は最大 50 の価格の商品に一致します。$not はフィールドが存在しないドキュメントには一致せず、内側には演算子式(正規表現リテラルではなく)を置く必要があります。

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

📝 構文

{ <field>: { $not: { <operator expression> } } }

⚙️ パラメータ

フィールドマッチ対象のドキュメントフィールド。
演算子式否定する演算子条件(例: { $gt: 50 })。

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

▶ 例

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

// $not: price が 50 より大きくない
db.products.find({ price: { $not: { $gt: 50 } } })

// 同等: $lte のほうが直接的
db.products.find({ price: { $lte: 50 } })

出力:

// 最大 50 の商品を返す。フィールドが存在しないドキュメントは除外

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Q$not と $ne の違いは?
A$ne は「値が等しくない」ことを意味します。$not は演算子式全体を否定します。例: { $not: { $gt: 50 } }。
Q$not はフィールドが存在しないドキュメントに一致しますか?
Aいいえ。フィールドが存在しないと内側の条件が偽になるため、否定しても一致しません。
Q$not で正規表現を否定できますか?
Aはい。{ $not: { $regex: '...' } } の形ならできます。ただし { $not: /pattern/ } のような直接指定は不可です。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%