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

How to update couchdb document without losing existing attachment

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

问候 苏尼尔.

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

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

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

编辑: 我错过了你正在使用 Erktop。

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

如果由于某种原因您不能这样做,您需要确保对存根进行(反)序列化。您可以使用 here.

中的实现