Docs 菜单

Docs 主页开发应用程序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(聚合)