sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB:Sådan finder du et dokument efter et id inde i et indlejret dokument

Brug punktnotation:

Når feltet indeholder et indlejret dokument, kan en forespørgsel enten angive et nøjagtigt match på det indlejrede dokument eller angive et match med individuelle felter i det indlejrede dokument ved hjælp af punktnotationen.

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

Hvis du kun skal udlæse den del af et array, hvor du har dit _id, skal du bruge dollar i projektion

Den positionelle $-operator begrænser indholdet af et fra forespørgselsresultatet til kun at indeholde det første element, der matcher forespørgselsdokumentet.

og din forespørgsel ser sådan ud:

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

P.S. hvis du har brug for output som i dine ændrede spørgsmål, brug dette:

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


  1. Forbind laravel jenssegers til mongodb atlas cluster

  2. Sådan konverteres Redis-dato til R

  3. mongoDB upsert på array

  4. Docker-compose , alligevel for at angive en redis.conf fil?