4

これは非常に単純な質問のように思えますが、答えが見つかりませんでした。MongoDB を使用していて、検索基準を提供するクエリを実行したいのですが、特定のドキュメントが除外される例外を作成したいと考えています。基準について。たとえば、 と のフィールドを持つコレクションを想像しnameageくださいgender

特定の年齢未満の全員を取得しますか? 簡単:<collection>.find({'age':{'$lt':<maxAge>}}) 特定の年齢以下のすべての女性を取得しますか? 簡単なこと:<collection>.find({'gender':female, 'age':{'$lt':<maxAge>}})

しかし、[女性で特定の年齢以下の場合] を除いて、全員を取得する場合はどうでしょうか。「$ne」演算子を使用して特定のフィールドを簡単に否定できますが、一連の条件に一致するすべてのフィールドを否定するにはどうすればよいですか?

4

1 に答える 1

3

AND を各項の否定の OR に個別に反転するには、ブール論理を適用する必要があります。

collection.find({$or: [{age: {$gte: maxAge}}, {gender: {$ne: 'female'}}]})

また

collection.find({$or: [{age: {$not: {$lt: maxAge}}}, {gender: {$ne: 'female'}}]})
于 2013-01-25T01:24:33.000 に答える