Weil Einzeldokumentaktualisierungen atomar sind , unabhängig von der Reihenfolge, in der Ihre beiden Befehle ausgeführt werden, endet das Dokument als:
{amount : 9999, approved: true, ...}
Wenn der erste Befehl zuerst ausgeführt wird, überschreibt ihn der zweite Befehl.
Wenn der zweite Befehl zuerst ausgeführt wird, hat der erste Befehl keine Auswirkung, da approve
ist jetzt true
daher stimmen die Update-Bedingungen nicht überein.
Was Sie (richtig) tun, ist die etablierte optimistische Parallelität oder "update if current" Ansatz zur Verwaltung des gleichzeitigen Zugriffs.