0

Couch DBは初めてであり、ドキュメントのリビジョン番号の使用方法がわかりません。特に、クライアントアプリケーションがこのリビジョン番号を認識している必要があるかどうか、および継続性を確保するために保存要求ごとにサーバーに送り返す必要があるかどうかはわかりません。

私たちの状況では、CouchDBとクライアントアプリケーション(Actionscript 3で記述されたゲーム)の間にNodeJSサーバーがあります。ゲームの世界はグリッドに分割されており、短時間で1つのタイルに複数の変更が加えられ、それぞれが新しい保存リクエストを生成する可能性があります。2つの同時リクエストが特定の順序でサーバーに到着するという保証はないため、タイルデータが既にデータベースにあるデータよりも新しい場合にのみ、タイルデータが保存されるようにする必要があります。

各ドキュメントに添付するカスタムトランザクションIDの使用を検討していますが、それが間違っているか、CouchDBの基本的な動作(つまり「正しい方法」)が欠落している可能性があることを懸念しています。

4

1 に答える 1

6

はい、_revすべての保存にプロパティを含めます。http://wiki.apache.org/couchdb/HTTP_Document_API#PUTから

既存のドキュメントを更新するには、PUTリクエストも発行します。この場合、JSON本体には_revプロパティが含まれている必要があります。これにより、CouchDBは編集の基になっているリビジョンを知ることができます。データベースに現在保存されているドキュメントのリビジョンが一致しない場合、409競合エラーが返されます。

競合管理の詳細については、http://guide.couchdb.org/editions/1/en/conflicts.html#workingを参照してください。

于 2013-03-04T02:50:56.383 に答える