È in una situazione come questa che usi il $
posizionale operatore di aggiornamento. Una cosa da notare è che il campo dell'array deve apparire come parte del documento della query. Questo è ciò che spiega l'uso di $exists
qui.
db.collection.update(
{ "id": "8888", "aloh.saludo": { "$exists": true } },
{ "$pull": { "aloh.$.saludo": { "qwe": "rty", "sad": "fet" } } }
)