Er is momenteel geen manier om dit te doen met behulp van een reguliere update-bewerking om redenen die u hebt opgemerkt.
De enige tijdelijke oplossing die u op dit moment kunt gebruiken, is versiebeheer aan uw document toe te voegen en optimistische vergrendeling te gebruiken door het document te lezen, de juiste elementen te vinden om in uw toepassing aan te passen, hun waarden te wijzigen en vervolgens een update
die de versie in het gelezen document bevat (zodat als een andere thread het document tussen uw vraag en uw update zou bijwerken, u de wijzigingen niet zou overschrijven, maar het document opnieuw zou moeten laden en het opnieuw zou moeten proberen.
De versiebeheerstrategie zou niet gebaseerd hoeven te zijn op het hele document, je kunt de array-elementen van het eerste niveau een versie geven en dan zou je alleen de subarray kunnen updaten waar je mee bezig was (via een update met $set).