“文档” 菜单
文档首页
/
MongoDB Manual
/ / /

$limit(聚合)

在此页面上

  • 定义
  • 兼容性
  • 语法
  • 行为
  • 例子
$limit

限制传递到管道下一阶段的文档数量。

可以使用 $limit 查找托管在以下环境中的部署:

  • MongoDB Atlas :用于在云中部署 MongoDB 的完全托管服务

$limit 阶段具有以下原型形式:

{ $limit: <positive 64-bit integer> }

$limit 取一个正整数,用于指定传递的最大文档数量。

注意

从 MongoDB 5开始。 0中, $limit管道聚合具有64位整数限制。传递到管道的值如果超过此限制,将返回无效参数错误。

如果将 $limit 阶段与以下任何一项一起使用:

在将结果传递到$limit阶段之前,请务必在排序中至少包含一个包含唯一值的字段。

对包含重复值的字段进行排序时,可能会在多次执行中对这些重复字段返回不一致的排序顺序,尤其是当集合正在接收写入时。

为确保排序一致,最简单方法是在排序查询中纳入 _id 字段。

点击以下链接,详细了解每项内容:

考虑以下示例:

db.article.aggregate([
{ $limit : 5 }
]);

此操作仅返回管道传递给它的前 5 个文档。$limit 对其传递的文档内容没有影响。

注意

$sort$limit之前并且没有修改文档数量的中间阶段时,优化器可以将$limit合并到$sort中。这允许$sort操作在推进时仅维护前n结果(其中n为指定的限制),并确保 MongoDB 仅需要在内存中存储n个项目。当allowDiskUsetrue并且n项超过聚合内存限制时,此优化仍然适用。

提示

另请参阅:

← $indexStats(聚合)