翻译或纠错本页面

cursor.addOption()

On this page

说明

cursor.addOption(flag)

注解

Deprecated in the mongo Shell since v3.2
Starting in v3.2, the cursor.addOption() operator is deprecated in the mongo shell. In the mongo shell, use available cursor methods instead.

添加 OP_QUERY 标记,和 tailable 标记相同,用于改变查询对象的行为。

The cursor.addOption() method has the following parameter:

Parameter Type Description
flag flag OP_QUERY wire protocol flag. For the mongo shell, you can use the cursor flags listed below. 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.

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. 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. 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)

警告

Adding incorrect wire protocol flags can cause problems and/or extra server load.