Docs HomeMongoDB Manual

cursor.addOption()

On this page本页内容

Definition定义

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-specific MongoDB driver documentation.

Note

Deprecated since v3.2自v3.2以来已弃用

Starting in v3.2, the cursor.addOption() operator is deprecated in mongo. Use available cursor methods instead.从v3.2开始,mongo中不赞成使用cursor.addOption()运算符。请改用可用的游标方法

Used to change query behavior by setting the flags listed below.用于通过设置下面列出的标志来更改查询行为。

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

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

Flags标记

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

FlagDescription描述
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. 用于DBQuery.Option.tailableSets 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.将游标设置为从针对某个分片集群的查询中返回部分数据,其中一些分片没有响应,而不是抛出错误。

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. 序列将创建一个游标。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:返回完整的结果集后,它会等待1000毫秒的默认间隔,以便捕获并返回在查询过程中添加的其他数据:

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.添加不正确的有线协议标志可能会导致问题和/或额外的服务器负载。