Mặc dù nó sẽ xuất hiện một .save () là cách tiếp cận phù hợp ở đây, một .update () lệnh sẽ hoàn thành công việc trong khi bỏ qua "điều kiện cuộc đua" gây ra lỗi này. Mongo DB gặp lỗi này vì lo ngại rằng tôi đang lưu phiên bản cũ hơn của tài liệu đã được cập nhật:
- v1 được gửi đến máy khách
- v1 được lưu và cập nhật lên v2 trong Mongo DB
- v1 đang cố gắng được lưu lại, nhưng Mongo DB đã lưu trữ v2, lỗi sẽ xảy ra
Một cách tiếp cận tốt hơn là gửi v1 cho khách hàng và khi đối tượng giỏ hàng thay đổi, hãy đồng bộ hóa đối tượng đó với đối tượng giỏ hàng mới bất kể điều gì. Điều này có thể được thực hiện qua .update () thay vì thông qua .save () .
Điều này là do .save () xem và quan tâm đến các điều khiển phiên bản, trong khi .update () sẽ cập nhật đối tượng bất kể kiểm soát phiên bản.