Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

cursor.limit()

在此页面上

  • 定义
  • 兼容性
  • 行为
cursor.limit()

重要

mongosh 方法

本页面提供 mongosh 方法的相关信息。这不是特定于语言的驱动程序(例如 Node.js)的文档。

如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。

在游标上使用 limit() 方法,可以指定游标返回的文档的最大数量。limit() 类似于 SQL 数据库中的 LIMIT 语句。

注意

在从数据库检索任何文档之前,必须对游标应用 limit()

使用 limit() 可最大限度地提高性能,并防止 MongoDB 返回的结果超过处理所需的数量。

limit() 方法具有以下原型形式:

db.collection.find(<query>).limit(<number>)

此方法可用于以下环境中托管的部署:

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

注意

所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令

  • MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本

  • MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本

limit() 的行为对于小于 -2 31 和大于 2 31 的值没有定义。

必须为 limit() 指定一个数值。

limit() 值为 0(即.limit(0)) 相当于不设置限制。

负限值与正限值相似,但在返回单个批次结果后将关闭游标。因此,对于负限值,如果有限的结果集不适合单个批次,则收到的文档数量将小于指定的限值。通过传递负限值,客户端可向服务器表明它不会通过 getMore 请求后续批次。

如果将 limit()sort() 一起使用,请务必在排序中至少包含一个包括唯一值的字段,然后再将结果传递给 limit()

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

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

有关更多信息,请参阅使用 sort() 方法进行一致排序

当您链接 skip()limit() 时,方法链接顺序不会影响结果。服务器始终会根据排序顺序应用跳过操作,然后再应用对返回文档数量的限制。

以下代码示例展示了 skip()limit() 的不同链接顺序,它们对同一数据集总是产生相同的查询结果:

db.myColl.find().sort({_id: 1}).skip(3).limit(6);
db.myColl.find().sort({_id: 1}).limit(6).skip(3);

后退

游标.itcount

在此页面上