skip()(跳过前N条)
最后更新:2026-10-09
skip()(跳过前N条)
skip()跳过游标中的前N条文档,语法为`db.users.find().sort({ age: 1 }).skip(10)`。它通常与limit()组合实现分页:skip()决定偏移量,limit()决定页大小。注意:skip()需要先遍历并丢弃被跳过的文档,offset越大效率越低;大数据集建议改用基于索引键的游标分页。
| 分类 | 游标 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
db.<集合>.find(<条件>).skip(<数量>)
⚙️ 参数
| 数量 | 要跳过的文档条数。 |
|---|
返回值:跳过前N条后的游标(可继续链式调用)。
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// skip:取第11到20条(第2页)
const page2 = db.users.find().sort({ _id: 1 })
.skip(10).limit(10).toArray()
page2.length
运行结果:
10
📌 注意事项
- offset越大skip越慢,因为被跳过的文档也要扫描
- 无排序时skip结果不稳定,建议配合sort()
- 大数据集分页优先用基于索引的游标分页
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Qskip分页为什么越翻越慢?
Askip(N)需要先扫描并丢弃前N条文档,offset越大扫描越多。深分页建议改用基于索引的游标分页。
Qskip不配合sort会怎样?
A返回顺序不确定,分页结果可能重复或遗漏,建议始终先sort()再skip()。
Qskip(0)是什么意思?
Askip(0)表示不跳过任何文档,等价于直接使用游标。