我需要部分更新cloudant数据库中的文档。原因是我想创建一个doc,为该doc添加一个图像(附件)并将img url发送到外部图像处理器。后来我想用图像处理的结果更新cloundant中的doc。我是通过swift / mobile进行此操作,并且不想多次复制该文件。根据api doc,似乎没有办法部分更新文档。但也许有人找到了这样做的方法。我看到我可以复制文档,但是当我需要向doc添加一些信息时,我认为这会给我同样的信息。也许它可以复制和合并?
答案 0 :(得分:0)
诀窍是向Cloudant查询doc(所有JSON),添加或更新相关字段的键/值对,然后将doc(或PUT
doc)保存到数据库。
确保在保存文档时包含最新的_rev值。
答案 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,但在处理附件时更麻烦。