sql >> Base de Datos >  >> NoSQL >> MongoDB

mongodb cómo consultar con el operador nand?

El operador $not no invierte una expresión compleja. Debe usar $and o $or para expresiones complejas.

Usando reglas lógicas, sabemos que los siguientes son idénticos:

    not ( A and B ) = not A or not B

Usando el lenguaje de consulta de MongoDB, tendría:

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 el marco de agregación de MongoDB, tendría:

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"}}]}}])