On this page
cursor.maxScan()
在本页面
Definition
cursor.
maxScan
( )- 3.2 版中的新功能。
指定查询计划将扫描的最大文档或索引键数。一旦达到限制,查询将终止执行并返回当前结果批次。
maxScan()具有以下语法:
cursor.maxScan( <maxScan> )
方法cursor.maxScan具有以下参数:
Parameter | Type | Description |
---|---|---|
maxScan |
int,long 或 double | 查询计划将扫描的最大文档或索引键数。 |
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" }