从 pouchdb 中只获取存储文档的一部分(不是获取整个文档,就像我们只读取 table 的所需列一样)
Get only a part of the stored document from pouchdb (not fetching the full document, just like how we read only the required columns of a table)
我的场景:
我将大约 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 来存储文档的摘要部分吗? ..这是唯一的解决方案吗?
我想你要找的是attachments。如果你的文档中存储了 200KB 的大数据,并且大多数时候你不想将其全部读入内存,那么附件将是完美的选择。
默认情况下,当您从 PouchDB 读取文档时,它只会获取附件 摘要(请参阅 the attachments guide)。如果你想要完整的数据,你可以使用 getAttachment()
或任何读取操作(get()
/allDocs()
/query()
/changes()
)和 {attachments: true}
.
"summary"操作效率更高,因为它甚至不从磁盘读取附件。
我的场景:
我将大约 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 来存储文档的摘要部分吗? ..这是唯一的解决方案吗?
我想你要找的是attachments。如果你的文档中存储了 200KB 的大数据,并且大多数时候你不想将其全部读入内存,那么附件将是完美的选择。
默认情况下,当您从 PouchDB 读取文档时,它只会获取附件 摘要(请参阅 the attachments guide)。如果你想要完整的数据,你可以使用 getAttachment()
或任何读取操作(get()
/allDocs()
/query()
/changes()
)和 {attachments: true}
.
"summary"操作效率更高,因为它甚至不从磁盘读取附件。