Použijte tečkovou notaci:
Když pole obsahuje vložený dokument, dotaz může buď určit přesnou shodu na vloženém dokumentu, nebo určit shodu podle jednotlivých polí ve vloženém dokumentu pomocí tečkové notace.
db.coll.find({
"accounts._id" :ObjectId("5546329a470019850084a611")
})
Pokud potřebujete vypsat pouze tu část pole, kde máte své _id, musíte v projekci použít dolar
Poziční operátor $ omezuje obsah z výsledků dotazu tak, aby obsahoval pouze první prvek odpovídající dokumentu query.
a váš dotaz bude vypadat takto:
db.coll.find({
"accounts._id" :ObjectId("5546329a470019850084a611")
}, {
"accounts.$.": 1
})
P.S. pokud potřebujete výstup jako ve vašich upravených otázkách, použijte toto:
db.coll.find({
"accounts._id" :ObjectId("5546329a470019850084a611")
}, {
accounts : 0
})