Cloudant - 部分更新文档 - http api

时间:2016-03-07 20:21:09

标签: couchdb ibm-cloud cloudant

我需要部分更新cloudant数据库中的文档。原因是我想创建一个doc,为该doc添加一个图像(附件)并将img url发送到外部图像处理器。后来我想用图像处理的结果更新cloundant中的doc。我是通过swift / mobile进行此操作,并且不想多次复制该文件。根据api doc,似乎没有办法部分更新文档。但也许有人找到了这样做的方法。我看到我可以复制文档,但是当我需要向doc添加一些信息时,我认为这会给我同样的信息。也许它可以复制和合并?

2 个答案:

答案 0 :(得分:0)

诀窍是向Cloudant查询doc(所有JSON),添加或更新相关字段的键/值对,然后将doc(或PUT doc)保存到数据库。

确保在保存文档时包含最新的_rev值。

更多信息: http://docs.cloudant.com/document.html#update

答案 1 :(得分:0)

如果问题是关于独立于附件更新文档,这不仅是可能的,而且是推荐的。

首先PUT the document,然后PUT the attachment(使用相应的rev查询参数)。之后,您可以独立于附件更新文档。

要更新文档(不更新附件),您应该GET the document,并注意它包含“附件存根”。只要您在PUT a new version of the document时保留存根,就会保留附件。带附件存根的文档示例:

{
  "_id":"attachment_doc",
  "_rev":1589456116,
  "_attachments":
  {
    "foo.txt":
    {
      "stub":true,
      "content_type":"text\/plain",
      "length":29
    }
  }
}

回答有关部分更新的更一般性问题,您可以使用update functions,但在处理附件时更麻烦。