sql >> Database >  >> NoSQL >> MongoDB

Hoe vraag ik een reeks woordenboeken in MongoDB op?

Je moet $elemMatch gebruiken om ingesloten documenten in een array te doorzoeken als u een query wilt uitvoeren met meerdere velden van een ingesloten document. Dus uw vraag zou als volgt moeten zijn:

db.collection.find( {
  "A": { $elemMatch: { name: "x", value: "1" } }
})

Als u documenten wilt opvragen met (name:"x", value:"1") of (name:"y", value:"2") in dezelfde zoekopdracht kunt u $or . gebruiken met elemMatch als volgt:

db.collection.find( {
  $or: [
    { "A": { $elemMatch: { name: "x", value: "1" } } },
    { "A": { $elemMatch: { name: "y", value: "2" } } }
  ]  
})

Als u documenten wilt opvragen met (name:"x", value:"1") en (name:"y", value:"2") in dezelfde zoekopdracht kun je $and . gebruiken met elemMatch als volgt:

db.collection.find( {
  $and: [
    { "A": { $elemMatch: { name: "x", value: "1" } } },
    { "A": { $elemMatch: { name: "y", value: "2" } } }
  ]  
})


  1. schaarse indexen en null-waarden in mongo

  2. Hoe een docker-container te seeden in Windows

  3. Hoe verwijder ik alles in Redis?

  4. MongoDB-taakverdeling in meerdere AWS-instanties