2017-10-17 166 views
0

当我有他们的ID时,如何从PouchDB有效地读取多个文档?PouchDB - IN子句

我尝试AllDocs

db.allDocs({ 
    keys: ['givenId1','givenId2',...,'givenId100'], 
}); 

实在是太慢了,当我在数据库10000个文档,并希望与include_docs=false读取100个按键,它需要大约8秒钟

我用websql适配器

回答

0

PouchDb docs使用AllDocs和“键”警告性能问题。我建议两件事情来尝试,可以提高性能:

(1)尽量不使用特定的适配器 - 的WebSQL可能不适合你的平台的最佳选择。 (2)在设计文档中定义索引并使用map/reduce查询来读取文档。文档是here,并且有一些例子可以让你开始使用,如果你不熟悉它的话。

+0

你可以通过报价,哪里PouchDb文档使用AllDocs和“键”警告性能问题?我找不到它 – WebMaster

+0

你没有使用startkey/endkey,并且在这种情况下有关于分页和性能的说明: “注意:对于分页,options.limit和options.skip也可用,但性能相同在CouchDB中应用,改为使用startkey/endkey模式。“但我不确定这是否与你有关。 在大数据集中,即使您指定了所需的键,AllDocs仍会读取所有内容。一个索引和map/reduce可能更有效率,并且不难实现,所以如果我是你,我会试试看它是否会改进。 – IanC

+0

是map/reduce扫描整个数据库吗? – WebMaster