cursor.limit()
On this page本页内容
Definition定义
cursor.limit()
- Important
mongosh Method
This page documents a
mongosh
method. This is not the documentation for a language-specific driver, such as Node.js.For MongoDB API drivers, refer to the language-specific MongoDB driver documentation.
Use the在游标上使用limit()
method on a cursor to specify the maximum number of documents the cursor will return.limit()
方法来指定游标将返回的最大文档数。limit()
is analogous to theLIMIT
statement in a SQL database.limit()
类似于SQL数据库中的LIMIT
语句。NoteUse使用limit()
to maximize performance and prevent MongoDB from returning more results than required for processing.limit()
可以最大限度地提高性能,并防止MongoDB返回的结果超过处理所需的结果。Thelimit()
method has the following prototype form:limit()
方法具有以下原型形式:db.collection.find(<query>).limit(<number>)
Behavior行为
Supported Values支持的值
The behavior of 对于小于-231且大于231的值,limit()
is undefined for values less than -2 31 and greater than 2 31.limit()
的行为是未定义的。
You must specify a numeric value for 必须为limit()
.limit()
指定一个数值。
Zero Value零值
A limit()
value of 0 (i.e. .limit(0)
) is equivalent to setting no limit.limit()
值为0(即.limit(0)
)相当于不设置限制。
Negative Values负值
A negative limit is similar to a positive limit but closes the cursor after returning a single batch of results. 负限制类似于正限制,但在返回一批结果后关闭游标。As such, with a negative limit, if the limited result set does not fit into a single batch, the number of documents received will be less than the specified limit. 因此,在负限制的情况下,如果有限的结果集不适合单个批次,则收到的文档数将小于指定的限制。By passing a negative limit, the client indicates to the server that it will not ask for a subsequent batch via 通过传递负限制,客户端向服务器指示它不会通过getMore
.getMore
请求后续批处理。
Using limit()
with sort()
将limit()
与sort()
一起使用
limit()
with sort()
If using 如果将limit()
with sort()
, be sure to include at least one field in your sort that contains unique values, before passing results to limit()
.limit()
与sort()
一起使用,请确保在将结果传递给limit()
之前,在排序中至少包含一个包含唯一值的字段。
Sorting on fields that contain duplicate values may return an inconsistent sort order for those duplicate fields over multiple executions, especially when the collection is actively receiving writes.对包含重复值的字段进行排序可能会在多次执行中为这些重复字段返回不一致的排序顺序,尤其是当集合正在主动接收写入时。
The easiest way to guarantee sort consistency is to include the 保证排序一致性的最简单方法是在排序查询中包含_id
field in your sort query._id
字段。
See Consistent sorting with the sort() method for more information.有关详细信息,请参阅使用sort()
方法进行一致排序。
Using limit()
with skip()
将limit()
与skip()
一起使用
limit()
with skip()
When you chain 当您链接skip()
and limit()
, the method chaining order does not affect the results. skip()
和limit()
时,方法链接顺序不会影响结果。The server always applies the skip operation based on the sort order before it applies the limit on how many documents to return.服务器在应用要返回的文档数量限制之前,总是根据排序顺序应用跳过操作。
The following code example shows different chaining orders for 以下代码示例显示了skip()
and limit()
that always produce the same query results for the same data set:skip()
和limit()
的不同链接顺序,它们总是为同一数据集生成相同的查询结果:
db.myColl.find().sort({_id: 1}).skip(3).limit(6);
db.myColl.find().sort({_id: 1}).limit(6).skip(3);