$limit(限制条数)
最后更新:2026-10-09
$limit(限制条数)
$limit 截断管道,只保留当前顺序的前 N 条文档并丢弃其余,不改变文档内容。与 find() 的 limit 语义一致。配合 $sort 可实现 top-N 查询;把 $limit 尽量前置能显著减少后续阶段处理的数据量,是聚合优化的常用手段。
| 分类 | 核心阶段 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $limit: <正整数> }
⚙️ 参数
| 数量 | 要保留的文档条数,必须为正整数。 |
|---|
返回值:仅前 N 条文档的文档流
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $limit:取阅读量前 5 的文章
db.articles.aggregate([
{ $sort: { views: -1 } },
{ $limit: 5 }
])
运行结果:
// 阅读量最高的 5 篇文章
📌 注意事项
- $limit 保留的是管道当前顺序的前 N 条,顺序由前一阶段决定
- 参数必须为正整数,0 或负数会报错
- 与 $sort 组合时先排序再截断,才能得到真正的 top-N
🏷️ 相关标签
💡 相关案例
📚 相关教程
❓ 常见问题
Q$limit 和 $skip 能一起用吗?
A可以,$skip 先跳过前若干条,$limit 再截断,组合实现分页。
Q$limit 放管道前面有用吗?
A有用,越早截断,后续阶段处理的数据越少,能显著提升性能。
Q$limit 的参数可以是变量吗?
A不能,参数必须是字面量正整数;动态数量可用 $facet 子管道变通。