Użyj notacji kropkowej:
Gdy pole zawiera osadzony dokument, zapytanie może albo określić dokładne dopasowanie w osadzonym dokumencie, albo określić dopasowanie według poszczególnych pól w osadzonym dokumencie za pomocą notacji kropkowej.
db.coll.find({
"accounts._id" :ObjectId("5546329a470019850084a611")
})
Jeśli chcesz wypisać tylko część tablicy, w której masz swój _id, musisz użyć dolara w projekcji
Pozycyjny operator $ ogranicza zawartość z wyników zapytania tak, aby zawierała tylko pierwszy element pasujący do dokumentu zapytania.
Twoje zapytanie wyglądałoby tak:
db.coll.find({
"accounts._id" :ObjectId("5546329a470019850084a611")
}, {
"accounts.$.": 1
})
PS jeśli potrzebujesz wyniku takiego jak w zmodyfikowanych pytaniach, użyj tego:
db.coll.find({
"accounts._id" :ObjectId("5546329a470019850084a611")
}, {
accounts : 0
})