.save()のように見えますが ここでの正しいアプローチは、 .update() コマンドは、このエラーの原因となる「競合状態」を無視してジョブを実行します。すでに更新されている古いバージョンのドキュメントを保存していることが懸念されるため、Mongo DBはこのエラーをスローします:
- v1がクライアントに送信されます
- v1が保存され、MongoDBでv2に更新されます
- v1は再度保存しようとしていますが、Mongo DBにはすでにv2が保存されているため、エラーがスローされます
より良いアプローチは、v1をクライアントに送信し、カートオブジェクトが変更されたときに、何があってもオブジェクトを新しいカートオブジェクトと同期することです。これは、 .update()を介して実行できます。 .save()ではなく 。
これは、 .save()が原因です。 .update()がバージョン管理を監視し、気にします バージョン管理に関係なくオブジェクトを更新します。