sql >> Database >  >> NoSQL >> MongoDB

Query MongoDB met $and en Multiple $or

de documentatie zegt niet dat dit onmogelijk is. Er staat alleen

Deze query kan niet worden geconstrueerd met een impliciete AND-bewerking, omdat de operator $or meer dan eens wordt gebruikt.

dit betekent dat dit zal werken:

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

maar dit niet, want het is een impliciete $and met twee $or

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

probeer het online:mongoplayground.net/p/gL_0gKzGA-u

Hier is een werkvoorbeeld met een impliciete $and :

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

Ik denk dat het probleem dat u ondervindt, is dat er geen document in uw verzameling is dat overeenkomt met uw verzoek




  1. Tel matrixelementen die overeenkomen met de voorwaarde

  2. DataFrame naar RDD [(String, String)] conversie

  3. FOUT:Kan pid-bestand niet schrijven naar /var/run/mongodb/mongod.pid:Geen dergelijk bestand of directory-info fedora 20

  4. Mongodb:meerdere collecties of één grote collectie met index