cursor.maxScan()

在本页面

Definition

指定查询计划将扫描的最大文档或索引键数。一旦达到限制,查询将终止执行并返回当前结果批次。

maxScan()具有以下语法:

cursor.maxScan( <maxScan> )

方法cursor.maxScan具有以下参数:

Parameter Type Description
maxScan int,long 或 double 查询计划将扫描的最大文档或索引键数。
Returns: maxScan()附加到的cursor具有基于maxScan参数的修改后的结果集。这允许链接其他光标修饰符。

Behavior

对于 collections 扫描,maxScan是返回查询结果之前扫描的最大文档数。对于索引扫描,maxScan是检查的索引键的最大数量。

使用值0等效于不使用cursor.maxScan()

Example

给定以下数据:

{ _id : 1, ts : 100, status : "OK" },
{ _id : 2, ts : 200, status : "OK" },
{ _id : 3, ts : 300, status : "WARN" },
{ _id : 4, ts : 400, status : "DANGER" },
{ _id : 5, ts : 500, status : "WARN" },
{ _id : 6, ts : 600, status : "OK" },
{ _id : 7, ts : 700, status : "OK" },
{ _id : 8, ts : 800, status : "WARN" },
{ _id : 9, ts : 900, status : "WARN" },
{ _id : 10, ts : 1000, status : "OK" }

假设通过收集扫描回答了此查询,则以下内容将要扫描的文档数限制为5

db.collection.find ( { "status" : "OK" } ).maxScan(5)

该操作返回:

{ "_id" : 1, "ts" : 100, "status" : "OK" }
{ "_id" : 2, "ts" : 200, "status" : "OK" }

如果使用对{ status : 1 }的索引扫描来回答此查询,则相同的操作将返回以下内容:

{ "_id" : 1, "ts" : 100, "status" : "OK" }
{ "_id" : 2, "ts" : 200, "status" : "OK" }
{ "_id" : 6, "ts" : 600, "status" : "OK" }
{ "_id" : 7, "ts" : 700, "status" : "OK" }
首页