【发布时间】:2014-07-17 23:25:11
【问题描述】:
假设我在 CouchDB 中有一个文档,两个用户同时访问该文档以对其进行编辑。
我该如何处理,因为如果文档被更新,_rev 数字将被更改,而其他用户无法保存他的更改..
如何合并用户对同一文档所做的两个更新?
【问题讨论】:
标签: couchdb
假设我在 CouchDB 中有一个文档,两个用户同时访问该文档以对其进行编辑。
我该如何处理,因为如果文档被更新,_rev 数字将被更改,而其他用户无法保存他的更改..
如何合并用户对同一文档所做的两个更新?
【问题讨论】:
标签: couchdb
您可以使用新的_rev 再次解决此客户端发送更新问题,或者(更好)编写update handler function。更新处理程序将执行更新的用户提供的当前(最新)文档和参数作为参数。作为结果函数应该返回新文档或 null。您可以将其视为服务器端更新到位。这样您就不必担心_ver 字段。
【讨论】:
/DB_NAME/_design/DESIGN_NAME/_update/FUN_NAME/DOC_ID 时,它会被执行。 Couch 将当前文档和请求数据(包括 URL 和正文中的附加参数)作为参数传递给函数。返回值是一对:新文档和对执行 URL 的用户的响应。查看documentation 和wiki 中的示例。