Vì các bản cập nhật tài liệu đơn lẻ là nguyên tử , bất kể thứ tự mà hai lệnh của bạn thực thi, tài liệu sẽ kết thúc là:
{amount : 9999, approved: true, ...}
Nếu lệnh đầu tiên thực thi trước thì lệnh thứ hai sẽ ghi đè nó.
Nếu lệnh thứ hai thực thi đầu tiên, thì lệnh đầu tiên không có hiệu lực vì approve
bây giờ là true
vì vậy các điều kiện cập nhật sẽ không phù hợp.
Những gì bạn (chính xác) đang làm là đồng thời tích cực được thiết lập tốt hoặc "cập nhật nếu hiện tại" cách tiếp cận để quản lý quyền truy cập đồng thời.