Operator $not nie odwraca złożonego wyrażenia.Do wyrażeń złożonych należy używać $i lub $lub.
Korzystając z reguł logicznych, wiemy, że następujące elementy są identyczne:
not ( A and B ) = not A or not B
Używając języka zapytań MongoDB, powinieneś mieć:
db.collection.find({$or:[{"a":{"$ne":false}},{"b":{"$ne":"condition"}}]})
OR simplifying the double boolean:
db.collection.find({$or:[{"a":true},{"b":{"$ne":"condition"}}]})
Korzystając ze struktury agregacji MongoDB, należałoby:
db.collection.aggregate([{"$match":{$or:[{"a":{"$ne":false}},{"b":{"$ne":"condition"}}]}}])
OR again, simplified to:
db.collection.aggregate([{"$match":{$or:[{"a":true},{"b":{"$ne":"condition"}}]}}])