cursor.addOption() (original) (raw)

cursor.addOption(flag)

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-specificMongoDB driver documentation.

Note

Deprecated since v3.2

Starting in v3.2, the cursor.addOption() operator is deprecated in mongo. Use available cursor methods instead.

Used to change query behavior by setting the flags listed below.

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

Parameter Type Description
flag flag For mongosh, you can use the cursor flags listed below. For the driver-specific list, see yourdriver documentation.

This method is available in deployments hosted in the following environments:

Important

This command has limited support in M0, M2, M5, M10+, and Flex clusters. For more information, see Unsupported Commands.

mongosh 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 secondary.
DBQuery.Option.noTimeout Prevents the server from timing out idle cursors.
DBQuery.Option.awaitData For use with DBQuery.Option.tailable. Sets the cursor to block the query thread when no data is available and await data for a set time instead of immediately returning no data. The cursor returns no data only if the timeout expires.
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.

The following example adds the DBQuery.Option.tailable flag and theDBQuery.Option.awaitData flag to ensure that the query returns atailable cursor. The sequence creates a cursor. After returning the full result set, it waits for the default interval of 1000 milliseconds 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.