AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

$nor(クエリ述語演算子)

$nor

は、1 $norつ以上のクエリ述語の配列に対して論理NOR 操作を実行し、配列内のすべてのクエリ述語に失敗したドキュメントを選択します。$nor の構文は次のとおりです。

{ $nor: [ { <expression1> }, { <expression2> }, ... { <expressionN> } ] }

演算子のみを使用する次のクエリを検討してください。$nor

db.inventory.find( { $nor: [ { price: 1.99 }, { sale: true } ] } )

このクエリは、以下のすべてのドキュメントを返します。

  • 値が 1.99 と等しくない price フィールドを含み、かつ値が true と等しくない sale フィールドを含む、あるいは

  • 値が 1.99 と等しくない price フィールドを含むが、sale フィールドを含まない、あるいは

  • price フィールドを含まず、しかし値が true と等しくない sale フィールドを含む、あるいは

  • price フィールドを含まず、かつ sale フィールドも含まないドキュメント

次のクエリを考えてみましょう。

db.inventory.find( { $nor: [ { price: 1.99 }, { qty: { $lt: 20 } }, { sale: true } ] } )

このクエリは、次の条件を満たす inventory コレクション内のすべてのドキュメントを選択します。

  • price フィールドの値が 1.99 と等しくなく、かつ

  • qty フィールドの値が 20 より小さくなく、かつ

  • sale フィールドの値が true と等しくない

これらのフィールドを含まないドキュメントも含まれます。

$nor$nor式にフィールドを含まないドキュメントを返す例外は、$exists 演算子が 演算子とともに使用されている場合です。

これを、$nor 演算子と$exists 演算子を使用する次のクエリと比較してください。

db.inventory.find( { $nor: [ { price: 1.99 }, { price: { $exists: false } },
{ sale: true }, { sale: { $exists: false } } ] } )

このクエリは、以下のすべてのドキュメントを返します。

  • 値が 1.99 と等しくない price フィールドを含み、かつ値が true と等しくない sale フィールドを含む
このページを評価

項目一覧