如何在不丢失现有附件的情况下更新couchdb文档

Sun*_*nil 2 couchdb attachment ektorp

我想更新已经有附件的couchdb文档中的字段.如果我使用当前版本更新新字段,则会删除附件.有没有办法让我更新字段而不会丢失附件?我正在使用Ektorp API来更新文档.

关心Sunil.

Nun*_*ces 5

当您GET拥有附件的文档时,它将包含附件的"存根":

{
  "_id":"attachment_doc",
  "_rev":1589456116,
  "_attachments":
  {
    "foo.txt":
    {
      "stub":true,
      "content_type":"text\/plain",
      "length":29
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

如果要更新文档(例如,通过PUT),则必须包含"存根",否则Couch将删除附件.

编辑:我错过了你使用的Erktop.

保留附件存根的最简单方法应该是扩展您的域类CouchDbDocument.

如果由于某种原因你不能这样做,你需要确保存根被(反)序列化.您可以从这里使用实现.