首页 > 解决方案 > MongoDB中的范围查找分页命令

问题描述

我可以执行 MongoDb 的任何命令来查找特定范围的数据吗?

例如-我在数据库中有 100 个项目,我想首先获得前 10 个项目范围 1-10,然后我想获得下 10 个项目范围 11-20,依此类推。

标签: node.jsdatabasemongodbapinosql

解决方案


我们可以使用 skip() 和 limit() 来做到这一点

MongoDB 原生支持使用 skip() 和 limit() 命令进行分页操作。skip(n) 指令告诉 MongoDB 它应该跳过“n”个结果,limit(n) 指令指示 MongoDB 应该将结果长度限制为“n”个结果。通常,您将在光标上使用 skip() 和 limit() 指令 - 但为了说明该场景,我们提供了可以实现相同结果的控制台命令。此外,为了代码简洁,限制检查代码也被排除在外:

//Page 1
db.users.find().limit (10)
//Page 2
db.users.find().skip(10).limit(10)
//Page 3
db.users.find().skip(20).limit(10)

你明白了。通常,要检索页面“n”,代码如下所示:

db.users.find().skip(pagesize*(n-1)).limit(pagesize)

https://scalegrid.io/blog/fast-paging-with-mongodb/


推荐阅读