2

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

问候苏尼尔。

4

1 回答 1

6

当您GET的文档包含附件时,它将包含附件的“存根”:

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

当您想要更新文档时(例如通过PUT),您必须包含“存根”,否则 Couch 将删除附件。

编辑:我错过了您使用 Erktop。

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

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

于 2015-12-17T01:17:07.090 回答