Z důvodů, které jste uvedli, to v současné době nelze provést pomocí běžné aktualizace.
Jediným řešením, které můžete v tuto chvíli použít, je přidat do dokumentu verzování a použít optimistické zamykání tak, že si dokument přečtete, najdete vhodné prvky k úpravě ve vaší aplikaci, změníte jejich hodnoty a poté použijete update
která obsahuje verzi v čteném dokumentu (takže pokud jiné vlákno aktualizovalo dokument mezi vaším dotazem a aktualizací, nepřepsali byste změny, ale museli byste dokument znovu načíst a zkusit to znovu.
Strategie verzování by nemusela být založena na celém dokumentu, můžete verzovat prvky pole první úrovně a pak byste byli schopni aktualizovat pouze podpole, o které jste měli zájem (prostřednictvím aktualizace s $set).