Ponieważ aktualizacje pojedynczych dokumentów są atomowe , bez względu na kolejność wykonywania dwóch poleceń, dokument będzie wyglądał następująco:
{amount : 9999, approved: true, ...}
Jeśli pierwsze polecenie zostanie wykonane jako pierwsze, drugie polecenie zastąpi je.
Jeśli drugie polecenie zostanie wykonane jako pierwsze, to pierwsze polecenie nie ma wpływu jako approve
jest teraz true
więc warunki aktualizacji nie będą pasować.
To, co robisz (poprawnie) to ugruntowana optymistyczna współbieżność lub "zaktualizuj, jeśli jest bieżący" podejście do zarządzania równoczesnym dostępem.