dokumentace neříká, že to není možné. Říká pouze
Tento dotaz nelze sestavit pomocí implicitní operace AND, protože používá operátor $or více než jednou.
to znamená, že to bude fungovat:
db.inventory.find( {
$and : [
{ $or : [ { price : 0.99 }, { price : 1.99 } ] },
{ $or : [ { sale : true }, { qty : { $lt : 20 } } ] }
]
} )
ale to nebude, protože je to implicitní $and
se dvěma $or
db.inventory.find({
{ $or : [ { price : 0.99 }, { price : 1.99 } ] },
{ $or : [ { sale : true }, { qty : { $lt : 20 } } ] }
})
zkuste to online:mongoplayground.net/p/gL_0gKzGA-u
Zde je funkční případ s implicitním $and
:
db.inventory.find({ price: { $ne: 1.99, $exists: true } })
Myslím, že problém, kterému čelíte, je ten, že ve vaší sbírce není žádný dokument odpovídající vašemu požadavku