以nano为单位更新CouchDB文档

DSb*_*ard 6 couchdb couchdb-nano

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

"放"的动作要求文档的当前版本,但在纳米我找不到,这需要修改作为参数,并插入文档回到数据库的任何功能.

我怎么能用nano做到这一点?

Oct*_*ean 7

注意:这是一般算法,它不是特定于任何库,因为nano的insert()方法不提供任何自动更新文档.

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

确保处理同时更改文档时可能出现的409个冲突响应.

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

所以这是算法:

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

查看CouchDB HTTP Document API的PUT部分和CouchDB的复制和冲突维基页面,了解有关该问题的更多信息.您还可以找到如何使用Nano更新文档(适用于Node.js的CouchDB客户端).