我的情景:
我将大约4000个文档存储到我的pouchdb数据库中。
每份文件分为两部分:
a)摘要部分和
b)数据部分(每个文档大小约200kb)
在我的应用程序中,我有一个摘要页面,我只显示数据库中所有文档的摘要。在摘要页面中,用户可以单击文档,然后在单独的页面中显示所选文档的完整详细信息。
我的问题:
对于摘要页面,我想在pouchdb中提取文档的摘要部分。但是我不知道怎么做而不从pouchdb获取完整的完整文档(每个文档的主要数据部分可能非常大200kb)。
以下代码将把所有文档都带到数据库中,我担心它会给我带来巨大的性能问题。
db.allDocs({
include_docs: true,
}, function(err, response) {
if (err) { return console.log(err); }
// handle result
});

解决我的问题的最佳策略是什么? 我应该创建一个单独的summarydb来存储文档的摘要部分吗? ..这是唯一的解决方案吗?
答案 0 :(得分:1)
我认为你要找的是attachments。如果您在文档中存储了大量200KB的数据,并且如果您不想在大多数时间将其全部读入内存,则附件将是完美的。
默认情况下,当您从PouchDB中读取文档时,它只会获取附件摘要(请参阅the attachments guide)。如果您需要完整数据,可以使用getAttachment()
或任何阅读操作(get()
/ allDocs()
/ query()
/ changes()
)和{attachments: true}
“摘要”操作更有效,因为它甚至不会从磁盘读取附件。