cursor.tailable()
定义
cursor.tailable()
重要
mongosh 方法
本页面提供
mongosh
方法的相关信息。这不是特定于语言的驱动程序(例如 Node.js)的文档。如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。
将游标标记为可追加,即使客户端耗尽所有结果,游标也能保持打开状态。
仅适用于固定固定大小集合。 对非固定固定大小集合使用
tailable()
会返回错误。cursor.tailable()
使用如下语法:cursor.tailable( { awaitData : <boolean> } ) ~cursor.tailable()
有以下参数:Parameter类型说明awaitData
布尔可选。 与
DBQuery.Option.tailable
一起使用。 将游标设置为在没有可用数据时区块查询线程,并在设立的时间内等待数据,而不是立即不返回数据。 仅当超时时间已到时,游标才不返回数据。默认情况下,如果在创建游标的命令上设置了
maxTimeMS
,则awaitData
的超时时间就是剩余时间。 否则,默认超时为1000毫秒。在启用了
awaitData
的游标上运行getMore
时,您可以设立超时。默认值为
false
。返回: ~cursor.tailable()
附加到的游标。
兼容性
此方法可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
注意
所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
行为
可追加游标对固定大小集合执行集合扫描。 即使在到达集合末尾后,它仍会保持打开状态。 当新数据插入到集合中时,应用程序可以继续迭代可追加游标。
如果awaitData
为true
,当游标到达固定大小集合的末尾时, mongod
会在超时间隔时间内阻塞查询线程,并等待新数据到达。 当新数据插入固定大小集合时, mongod
会向被阻塞的线程发出信号,通知其唤醒并将下一个批次返回给客户端。
请参阅可追加游标。