MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

mongodb como consultar com o operador nand?


O operador $not não inverte uma expressão complexa. Você precisa usar $and ou $or para expressões complexas.

Usando regras lógicas, sabemos que as seguintes são idênticas:
    not ( A and B ) = not A or not B

Usando a linguagem de consulta MongoDB, você teria:
db.collection.find({$or:[{"a":{"$ne":false}},{"b":{"$ne":"condition"}}]})

OR simplifying the double boolean:

db.collection.find({$or:[{"a":true},{"b":{"$ne":"condition"}}]})

Usando a estrutura de agregação do MongoDB, você teria:
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"}}]}}])