2016-03-07 86 views
0

我需要部分更新cloudant db中的文檔。原因是我想創建一個文檔,添加一個圖像(附件)到該文檔併發送img url到外部圖像處理器。後來我想用圖像處理的結果更新文件。我正在從swift/mobile進行此操作,並且不想多次複製文件。根據api文檔,似乎無法部分更新文檔。但也許有人找到了一種方法來做到這一點。我發現我可以複製文檔,但假設在我需要向文檔添加一些信息時,會給我同樣的意見。也許有可能複製和合並?Cloudant - 部分更新文檔 - http api

回答

0

訣竅是向Cloudant查詢文檔(所有JSON),添加或更新相關字段的鍵/值對,然後將該文檔(或PUT文檔)保存到數據庫。

確保在保存文檔時包含最新的_rev值。

這裏更多: http://docs.cloudant.com/document.html#update

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,但附件時,他們更繁瑣。

+0

Tanx - 我看到..我有一些問題與alamofire和複雜的JSON的,但我想我找到一種方法來保存存根... – ethilesen

+0

我需要保留它_attachments - 如果我不能添加任何其他至文檔... – ethilesen

+0

是的,您確實需要保留'_attachments'。爲什麼不能向文檔添加其他內容? –