cursor.addOption()

在本页面

Definition

cursor. addOption(* flag *)

Note

添加OP_QUERY有线协议标志,例如tailable标志,以更改查询的行为。

cursor.addOption()方法具有以下参数:

ParameterTypeDescription
flagflagOP_QUERY有线协议标志。对于mongo shell,可以使用下面列出的光标标志。有关特定于驱动程序的列表,请参见driver documentation

Flags

mongo shell 提供了几个其他的游标标志来修改游标的行为。

FlagDescription
DBQuery.Option. tailable设置光标在接收到最后一个数据后不关闭,从而允许查询 continue 返回在耗尽初始结果之后添加的数据。
DBQuery.Option. slaveOk允许查询副本从属。
DBQuery.Option. noTimeout防止服务器超时空闲游标。
DBQuery.Option. awaitData适用于..数据:DBQuery.Option.tailable;将光标设置为阻塞并 await 一段时间,而不返回任何数据。一旦超时到期,光标将不返回任何数据。
DBQuery.Option. exhaust设置游标以一次返回查询返回的所有数据,而不是将结果分成批次。
DBQuery.Option. partial设置游标以针对某个分片群集从查询中返回部分数据,在分片群集中,某些分片不响应而是抛出错误。

Example

下面的示例添加DBQuery.Option.tailable标志和DBQuery.Option.awaitData标志以确保查询返回tailable cursor。该序列创建一个游标,该游标将在返回完整的结果集后 await 几秒钟,以便它可以捕获并返回在查询期间添加的其他数据:

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

Warning

添加不正确的有线协议标志可能会导致问题和/或增加服务器负载。