Quando sei interessato all'oggetto completo è un semplice find
:
.find({"facebook.id":"<id>", "images.id":<image-id>})
Non credo che ci sia un modo per ridurre l'array di immagini nel risultato.
Per aggiornare un singolo elemento nell'array di immagini puoi usare questo:
.update({"facebook.id":"<id>", "images.id":<image-id>}, {$set : {"images.$.main" :false} } );