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