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 个项目。当 allowDiskUsetruen 个项目超过了聚合内存限制时,此优化仍然适用。

提示

另请参阅:

后退

$indexStats