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

时间:2015-12-11 07:47:25

标签: couchdb attachment ektorp

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

此致 苏尼。

1 个答案:

答案 0 :(得分:5)

当您GET包含附件的文档时,它将包含附件" stub":

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

如果您想要更新文档(例如通过PUT),则必须包含" stub"否则Couch将删除附件。

编辑: 我想念你使用的是Erktop。

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

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