cursor.addOption()

On this page本页内容

Definition定义

cursor.addOption(flag)

mongo Shell Method

This page documents the mongo shell method, and does not refer to the MongoDB Node.js driver (or any other driver) method. 本页记录了mongo shell方法,未提及MongoDB Node.js驱动程序(或任何其他驱动程序)方法。For corresponding MongoDB driver API, refer to your specific MongoDB driver documentation instead.有关相应的MongoDB驱动程序API,请参阅特定的MongoDB驱动程序文档。

Deprecated since v3.2

Starting in v3.2, the cursor.addOption() operator is deprecated in the mongo shell. 从v3.2开始,mongo shell中不推荐使用cursor.addOption()运算符。In the mongo shell, use available cursor methods instead.mongo shell中,使用可用的游标方法

Adds OP_QUERY wire protocol flags, such as the tailable flag, to change the behavior of queries.添加OP_QUERY wire协议标志,例如tailable标志,以更改查询的行为。

The cursor.addOption() method has the following parameter:cursor.addOption()方法具有以下参数:

Parameter参数Type类型Description描述
flag flag OP_QUERY wire protocol flag. For the mongo shell, you can use the cursor flags listed below. 有线协议标志。对于mongo shell,可以使用下面列出的游标标志。For the driver-specific list, see your driver documentation.有关特定于驱动程序的列表,请参阅驱动程序文档

Flags标志

The mongo shell provides several additional cursor flags to modify the behavior of the cursor.mongo shell提供了几个额外的游标标志来修改游标的行为。

Flag标志Description描述
DBQuery.Option.tailable
Sets the cursor not to close once the last data is received, allowing the query to continue returning data added after the initial results were exhausted.将游标设置为在收到最后一个数据后不关闭,从而允许查询继续返回初始结果用尽后添加的数据。
DBQuery.Option.slaveOk
Allows querying of a replica slave.允许查询副本从机。
DBQuery.Option.noTimeout
Prevents the server from timing out idle cursors.防止服务器超时空闲游标。
DBQuery.Option.awaitData
For use with .. data:: DBQuery.Option.tailable; sets the cursor to block and await data for a while rather than returning no data. 用于和.. data:: DBQuery.Option.tailable配合使用;将游标设置为阻塞并等待数据一段时间,而不是不返回任何数据。The cursor will return no data once the timeout has expired.一旦超时过期,游标将不返回任何数据。
DBQuery.Option.exhaust
Sets the cursor to return all data returned by the query at once rather than splitting the results into batches.将游标设置为一次返回查询返回的所有数据,而不是将结果拆分为批。
DBQuery.Option.partial
Sets the cursor to return partial data from a query against a sharded cluster in which some shards do not respond rather than throwing an error.将游标设置为从针对分片集群的查询中返回部分数据,其中一些分片不响应,而不是抛出错误。

Example示例

The following example adds the DBQuery.Option.tailable flag and the DBQuery.Option.awaitData flag to ensure that the query returns a tailable cursor. 下面的示例添加了DBQuery.Option.tailable标志和DBQuery.Option.awaitData标志,以确保查询返回可裁剪的游标。The sequence creates a cursor that will wait for few seconds after returning the full result set so that it can capture and return additional data added during the query:序列会创建一个游标,返回完整结果集后会等待几秒钟,以便捕获并返回查询过程中添加的其他数据:

var t = db.myCappedCollection;
var cursor = t.find().addOption(DBQuery.Option.tailable).
                      addOption(DBQuery.Option.awaitData)

Warning

Adding incorrect wire protocol flags can cause problems and/or extra server load.添加不正确的有线协议标志可能会导致问题和/或额外的服务器负载。