1

我有一个带有文档的 CouchDB,如下所示:

{
  "_id": "000040cc-e3b4-47cc-b051-a5508efb8996",
  "_rev": "1-882d7f88cc2e1e767b55d0c82fb638d2",
  "state": "uploaded",
  "state_since": "2020-02-17T11:20:55.1450252Z"
  // more metadata ...

  "_attachments": {
    "large.jpg": {
      "content_type": "image/jpeg",
      "revpos": 1,
      "digest": "md5-NK7ejYjrErhMAs7tZ4+R8w==",
      "length": 87846,
      "stub": true
    },
     "medium.jpg": {
      ...
    },
    "small.jpg": {
      ...
    }
  }
}

假设,我想查询一组这样的图像:

{
   "selector": {
      "state": "uploaded"
   },
   "sort": ["state_since"],
   "limit": 100
}

如果我想显示这 100 张图像的缩略图,我必须遍历结果列表并下载相应的附件。这将是总共 101 个请求。

我也可以在一个请求中指定,我想获取带有附件的文档。但这将返回所有(可能非常大的)附件。

我知道我可以将fields查询中的属性设置为只返回我需要的字段。但是我也可以将其应用于附件吗?如果是的话:如何?

4

1 回答 1

2

不,没有办法做你所要求的。获取附件子集的唯一方法是一次获取一个附件,或者在获取用于复制的单个文档时使用atts_since属性。

也许考虑重新设计您的文档。也许您可以将缩略图存储在单独的文档中,该文档仅包含缩略图。

于 2020-02-20T08:32:00.380 回答