sql >> Database >  >> NoSQL >> MongoDB

MongoDB:een document vinden op een id in een genest document

Gebruik puntnotatie:

Wanneer het veld een ingesloten document bevat, kan een query ofwel een exacte overeenkomst specificeren op het ingesloten document of een overeenkomst specificeren door individuele velden in het ingesloten document met behulp van de puntnotatie.

db.coll.find({
   "accounts._id" :ObjectId("5546329a470019850084a611")
})

Als u alleen het deel van een array wilt uitvoeren waar u uw _id heeft, moet u dollar gebruiken in projectie

De positionele $ operator beperkt de inhoud van een van de queryresultaten zodat deze alleen het eerste element bevat dat overeenkomt met het querydocument.

en uw vraag zou er als volgt uitzien:

db.coll.find({
   "accounts._id" :ObjectId("5546329a470019850084a611")
}, {
   "accounts.$.": 1
})

P.S. als je de output nodig hebt zoals in je aangepaste vragen, gebruik dan dit:

db.coll.find({
   "accounts._id" :ObjectId("5546329a470019850084a611")
 }, {
   accounts : 0
 })


  1. Redis-cli --csv optie (exporteren naar csv)

  2. Query's met mangoest en dadels

  3. Vind documenten waarvan het arrayveld ten minste n elementen van een bepaalde array bevat

  4. Redis - Incr-waarde gebruiken in een transactie