Use notação de ponto:
Quando o campo contém um documento incorporado, uma consulta pode especificar uma correspondência exata no documento incorporado ou especificar uma correspondência por campos individuais no documento incorporado usando a notação de ponto.
db.coll.find({
"accounts._id" :ObjectId("5546329a470019850084a611")
})
Se você precisar gerar apenas a parte de uma matriz em que você tem seu _id, precisará usar o dólar na projeção
O operador posicional $ limita o conteúdo de um dos resultados da consulta para conter apenas o primeiro elemento correspondente ao documento da consulta.
e sua consulta ficaria assim:
db.coll.find({
"accounts._id" :ObjectId("5546329a470019850084a611")
}, {
"accounts.$.": 1
})
P.S. se você precisar da saída como em suas perguntas modificadas, use isto:
db.coll.find({
"accounts._id" :ObjectId("5546329a470019850084a611")
}, {
accounts : 0
})