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

項目一覧