【问题标题】:Handle updating documents at the same time in CouchDB?在 CouchDB 中同时处理更新文档?
【发布时间】:2014-07-17 23:25:11
【问题描述】:

假设我在 CouchDB 中有一个文档,两个用户同时访问该文档以对其进行编辑。

我该如何处理,因为如果文档被更新,_rev 数字将被更改,而其他用户无法保存他的更改..

如何合并用户对同一文档所做的两个更新?

【问题讨论】:

    标签: couchdb


    【解决方案1】:

    您可以使用新的_rev 再次解决此客户端发送更新问题,或者(更好)编写update handler function。更新处理程序将执行更新的用户提供的当前(最新)文档和参数作为参数。作为结果函数应该返回新文档或 null。您可以将其视为服务器端更新到位。这样您就不必担心_ver 字段。

    【讨论】:

    • 我不明白这个Update Handler Function是如何工作的..你能详细解释一下吗?
    • Update handler是设计文档中的一个函数(同map函数)。当您转到 URL /DB_NAME/_design/DESIGN_NAME/_update/FUN_NAME/DOC_ID 时,它会被执行。 Couch 将当前文档和请求数据(包括 URL 和正文中的附加参数)作为参数传递给函数。返回值是一对:新文档和对执行 URL 的用户的响应。查看documentationwiki 中的示例。
    • 这个函数应该写在哪里?
    • 在设计文档中其他design function 所在的位置。看看The Guide 中的介绍性描述。带有设计文档的视图是 CouchDB 背后的基本思想,在进一步使用该系统之前,您应该了解它。
    • 我正在使用视图来获取有关文档的信息或通过 ID 获取某些文档,但我不知道在哪里存储此功能。视图的 URL 是:_design/{design_name}/_view/{view_name}。如何制作_update?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 2012-07-24
    相关资源
    最近更新 更多