Docs Menu
Docs Home
/
MongoDBマニュアル
/ / / /

$nor

項目一覧

  • 定義
$nor

$norは、1 つ以上のクエリ述語の配列に対して論理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 フィールドを含む

Tip

以下も参照してください。

戻る

$not

項目一覧