Der er ingen måde at gøre dette på i øjeblikket ved at bruge en almindelig opdateringshandling af årsager, du har bemærket.
Den eneste løsning, du kan bruge i øjeblikket, er at tilføje versionering til dit dokument og bruge optimistisk låsning ved at læse dokumentet, finde de relevante elementer til at ændre i din applikation, ændre deres værdier og derefter bruge en opdatering der inkluderer versionen i det læste dokument (så hvis en anden tråd opdaterede dokumentet mellem din forespørgsel og din opdatering, ville du ikke overskrive ændringerne, men skulle genindlæse dokumentet og prøve igen.
Versionsstrategien behøver ikke at være baseret på hele dokumentet, du kan versionere array-elementerne på første niveau, og så vil du være i stand til at opdatere kun den under-array, du var bekymret for (via en opdatering med $set).