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
})