基本的に試みていることには何の問題もありませんが、おそらくここでの唯一の説明は、 $nin
のような演算子が必要であるという一般的な誤解です。 または$in
配列を照会するとき。
また、ここで実際に行う必要があるのは、 $ne
との基本的な不等式の一致です。 :
Person.find({ "groups": { "$ne": group._id } })
「配列」演算子は「配列ターゲット」用ではなく、便利な形式でテストするための条件の「リスト」を提供するためのものです。
Person.find({ "groups": { "$nin": [oneId, twoId,threeId] } })
したがって、単一の条件には通常の演算子を使用し、$in
を保存します。 および$nin
単一の値またはリストのいずれかに対して複数の条件をテストする場合。つまり、その逆です。
提供されたリスト内の引数の「なし」が配列の内容と一致する引数の「リスト」を渡す必要がある場合は、 $not
を使用してロジックを逆にします。 演算子と$all
演算子:
Person.find({ "groups": { "$not": { "$all": [oneId,twoId,threeId] } } })
つまり、提供された「リストのどれも」が配列に存在しないことを意味します。