$nor (否定論理和)

最終更新:2026-10-09

$nor (否定論理和)

$nor は複数の条件を組み合わせ、どの条件も成立しないドキュメントのみに一致します。`{ $nor: [ { price: 1.99 }, { sale: true } ] }` は 1.99 ドルでもなくセール中でもない商品に一致します。$or の逆です。注意点: フィールドが存在しないと各条件が偽になるため、$nor はフィールドが存在しないドキュメントを黙って含めてしまいます。

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

📝 構文

{ $nor: [ { <condition1> }, { <condition2> }, ... ] }

⚙️ パラメータ

条件の配列クエリ述語の配列。いずれも成立してはなりません。

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

▶ 例

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

// $nor: price が 1.99 でもなく、セール中でもない
db.products.find({
  $nor: [
    { price: 1.99 },
    { sale: true }
  ]
})

出力:

// 1.99 ドルでもセール中でもない商品を返す。sale フィールドがないドキュメントも一致する点に注意

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Q$nor と $not の違いは?
A$nor は複数の条件がすべて成立しないことを要求し、$not は 1 つの演算子式を否定します。
Q$nor はなぜフィールドが存在しないドキュメントを返すのですか?
A存在しないフィールドはどの条件も満たさず、$nor は「どれも成立しないこと」を要求するため、そのドキュメントが含まれてしまうのです。
Q$nor の中に $or をネストできますか?
Aはい。$nor の各要素には複雑な条件を書けます。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%