文档菜单
文档首页
/
MongoDB 手册
/ / /

$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个项目。即使在allowDiskUse设置为true并且n个项目超过聚合内存限制的情况下,此优化仍然适用。

提示

另请参阅

返回

$indexStats