$limit(聚合)
MongoDB5.0 已于 10 月2024 结束生命周期。不再支持此版本的文档。要升级5.0 部署,请参阅 MongoDB6 。0 升级程序。
定义
$limit
限制传递至管道下一阶段的文档数量。
兼容性
可以使用 $limit
查找托管在以下环境中的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
语法
$limit
阶段具有以下原型形式:
{ $limit: <positive 64-bit integer> }
$limit
取一个正整数,用于指定传递的最大文档数量。
注意
从 MongoDB 5.0 开始,$limit
管道聚合有 64 位整数限制。传递给管道的值如果超过此限制,将返回无效参数错误。
行为
在排序结果中使用 $limit
如果将 $limit
阶段与以下任何一项一起使用:
$sort
聚合阶段,sort()
方法,或findAndModify
命令或findAndModify()
shell 方法中的sort
字段,
在将结果传递到 $limit
阶段之前,请务必在排序中至少包含一个包含唯一值的字段。
对包含重复值的字段进行排序时,可能会在多次执行中对这些重复字段返回不一致的排序顺序,尤其是当集合正在接收写入时。
为确保排序一致,最简单方法是在排序查询中纳入 _id
字段。
点击以下链接,详细了解每项内容:
例子
考虑以下示例:
db.article.aggregate([ { $limit : 5 } ]);
此操作仅返回管道传递给它的前 5 个文档。$limit
对其传递的文档内容没有影响。