CouchDB-使用文档修订号的正确方法?

CouchDB-使用文档修订号的正确方法?,couchdb,Couchdb,我们是coach DB的新手,不确定如何使用文档修订号。特别是,我们不确定客户端应用程序是否应该知道此修订号,以及是否必须在每次保存请求时将其发送回服务器以确保连续性 我们的情况是,在CouchDB和客户端应用程序(用ActionScript3编写的游戏)之间有一个NodeJS服务器。游戏世界被划分为一个网格,可能在短时间内对单个磁贴进行多个更改,每个更改都会生成一个新的保存请求。由于无法保证两个同时的请求将以特定的顺序到达服务器,因此我们需要确保仅当磁贴数据比数据库中已有的数据更新时,才会保存

我们是coach DB的新手,不确定如何使用文档修订号。特别是,我们不确定客户端应用程序是否应该知道此修订号,以及是否必须在每次保存请求时将其发送回服务器以确保连续性

我们的情况是,在CouchDB和客户端应用程序(用ActionScript3编写的游戏)之间有一个NodeJS服务器。游戏世界被划分为一个网格,可能在短时间内对单个磁贴进行多个更改,每个更改都会生成一个新的保存请求。由于无法保证两个同时的请求将以特定的顺序到达服务器,因此我们需要确保仅当磁贴数据比数据库中已有的数据更新时,才会保存该数据


我们正在考虑使用附加到每个文档的自定义事务ID,但我们担心我们可能做得不对,或者缺少CouchDB的一些基本行为(即“正确的方式”)

是的,在每次保存时都包含
\u rev
属性。从

要更新现有文档,还需要发出PUT请求。在这种情况下,JSON正文必须包含一个_rev属性,它让CouchDB知道编辑基于哪个版本。如果当前存储在数据库中的文档版本不匹配,则返回409冲突错误


有关冲突管理的信息,请参阅:

是,在每次保存时包含
\u rev
属性。从

要更新现有文档,还需要发出PUT请求。在这种情况下,JSON正文必须包含一个_rev属性,它让CouchDB知道编辑基于哪个版本。如果当前存储在数据库中的文档版本不匹配,则返回409冲突错误

有关冲突管理的信息,请参阅: