6

我需要获取一个文档,更改/插入/删除一些字段并将其放回原处。

放置”操作需要文档的当前修订版,但在 nano 中,我找不到任何将修订版作为参数并将文档插入数据库的函数。

我怎么能用纳米做到这一点?

4

1 回答 1

8

注意:这是通用算法,它并不特定于任何库,因为nano 的insert()方法不提供任何自动更新文档的功能。

获取文档,保存当前版本,应用您的更改并尝试使用保存的版本号发送文档。

确保处理同时更改文档时可能发生的 409 冲突响应。

在这种情况下,您应该重新获取文档,保存修订号,重新应用您的更改,然后尝试使用新修订再次发送它。

所以这里是算法:

  1. 获取文件
  2. 保存_rev
  3. 应用更改
  4. 尝试使用保存的 _rev 发送更新的文档
  5. 如果是 409,请转到步骤 1

查看CouchDB HTTP 文档 API 的 PUT 部分和 CouchDB 的Replication and Conflicts wiki 页面以获取有关该问题的更多信息。您可能还会发现如何使用 Nano(Node.js 的 CouchDB 客户端)更新文档很有帮助。

于 2012-07-26T07:15:02.240 回答