cursor.limit()
定义
cursor.limit()
重要
mongosh 方法
这是一个
mongosh
方法。 这不是Node.js
或其他特定于编程语言的驱动程序方法的文档。在大多数情况下,
mongosh
方法的工作方式与传统mongo
shell方法相同。 但是,某些旧方法在mongosh
中不可用。有关旧版
mongo
shell 文档,请参阅相应 MongoDB Server 版本的文档:有关 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。
在游标上使用
limit()
方法,可以指定游标返回的文档的最大数量。limit()
类似于 SQL 数据库中的LIMIT
语句。注意
在从数据库检索任何文档之前,必须对游标应用
limit()
。使用
limit()
可最大限度地提高性能,并防止 MongoDB 返回的结果超过处理所需的数量。limit()
方法具有以下原型形式:db.collection.find(<query>).limit(<number>)
行为
支持的值
limit()
的行为对于小于 -2 31 和大于 2 31 的值没有定义。
必须为 limit()
指定一个数值。
零值
负值
负限值与正限值相似,但在返回单个批次结果后将关闭游标。因此,对于负限值,如果有限的结果集不适合单个批次,则收到的文档数量将小于指定的限值。通过传递负限值,客户端可向服务器表明它不会通过 getMore
请求后续批次。
将 与 结合使用limit()
sort()
如果将 limit()
和 sort()
一起使用,请务必在排序中至少包含一个包括唯一值的字段,然后再将结果传递给 limit()
。
对包含重复值的字段进行排序时,可能会在多次执行中对这些重复字段返回不一致的排序顺序,尤其是当集合正在接收写入时。
为确保排序一致,最简单方法是在排序查询中纳入 _id
字段。
有关更多信息,请参阅使用 sort() 方法进行一致排序。
将 与 结合使用limit()
skip()
当您链接 skip()
和 limit()
时,方法链接顺序不会影响结果。服务器始终会根据排序顺序应用跳过操作,然后再应用对返回文档数量的限制。
以下代码示例展示了 skip()
和 limit()
的不同链接顺序,它们对同一数据集总是产生相同的查询结果:
db.myColl.find().sort({_id: 1}).skip(3).limit(6); db.myColl.find().sort({_id: 1}).limit(6).skip(3);