我有一个带有文档的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
属性以仅返回我需要的字段。但是我也可以将其应用于附件吗?如果是:如何?
不,没有办法做你所要求的。提取附件子集的唯一方法是一次读取一个附件,或者在读取单个文档时使用 atts_since 属性,该属性用于复制。
也许可以考虑重新设计您的文档。也许您可以将缩略图存储在仅包含缩略图的单独文档中。