【发布时间】:2016-11-23 18:47:05
【问题描述】:
我正在对大量文档进行分页。我想知道这是否是使用 _id 在 mongoDB 中进行分页的有效方法。我担心的是,每次我进行查询时,都需要对整个 id 集合进行排序,然后才能返回结果。我看到了这个关于使用索引优化查询的文档,但是这是否适用于我,因为我在 _id 上查询,我认为它已经被索引了?
分页功能:
function paginateDocs(currId, docsPerPage) {
const query = currId ? { _id: { $gt: currId } } : {};
const queryOptions = { limit: usersPerPage, sort: '_id' };
return mongo.find(query, queryOptions).toArray();
}
【问题讨论】:
-
它应该选择默认索引
{_id: 1},并在btree 的>currId范围内查找文档。你能粘贴mongo.explain(1).find(query, options)的输出吗? -
我无法在生产环境中执行此操作,所以我认为这将不再有用,对吧?
标签: node.js mongodb optimization pagination