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

Consulta MongoDB con $and y Multiple $or

la documentación no dice que esto sea imposible. Solo dice

Esta consulta no se puede construir usando una operación AND implícita, porque usa el operador $or más de una vez.

esto significa que esto funcionará:

db.inventory.find( {
    $and : [
        { $or : [ { price : 0.99 }, { price : 1.99 } ] },
        { $or : [ { sale : true }, { qty : { $lt : 20 } } ] }
    ]
} )

pero esto no lo hará, porque es un implícito $and con dos $or

db.inventory.find({
        { $or : [ { price : 0.99 }, { price : 1.99 } ] },
        { $or : [ { sale : true }, { qty : { $lt : 20 } } ] }
})

pruébalo en línea:mongoplayground.net/p/gL_0gKzGA-u

Aquí hay un caso de trabajo con un implícito $and :

db.inventory.find({ price: { $ne: 1.99, $exists: true } })

Supongo que el problema al que te enfrentas es que no hay ningún documento que coincida con tu solicitud en tu colección