Docs 菜单

Docs 主页开发应用程序MongoDB Manual

失效

在此页面上

  • 总结
  • 说明
  • 例子
invalidate

当操作使变更流无效时,会发生invalidate事件。例如,在稍后删除或重命名的集合上打开的变更流会引发invalidate事件。

字段
类型
说明
_id
文档

一个 BSON 对象,用作变更流事件的标识符。恢复变更流时,此值用作 resumeAfter 参数的 resumeToken_id 对象具有以下形式:

{
"_data" : <BinData|hex string>
}

_data 类型取决于 MongoDB 版本,在某些情况下,还取决于变更流打开或恢复时的特征兼容性版本 (fCV)。有关 _data 类型的完整列表,请参阅恢复令牌

有关通过 resumeToken 恢复变更流的示例,请参阅恢复变更流

clusterTime
时间戳

与事件相关的 oplog 条目中的时间戳。

多文档事务相关的变更流事件通知都具有相同的 clusterTime 值:提交事务的时间。

在分片集群上,具有相同 clusterTime 的事件不一定都与同一事务有关。有些事件与事务完全无关。

要标识单个事务的事件,您可以在变更流事件文档中结合使用 lsidtxnNumber

4.0 版本中的新功能

operationType
字符串

变更通知报告的操作类型。

为这些变更事件返回 invalidate 值。

以下示例说明了 invalidate 事件:

{
"_id": { <Resume Token> },
"operationType": "invalidate",
"clusterTime": <Timestamp>,
}

当发生影响监视的集合的droprenamedropDatabase操作时,在集合上打开的变更流会引发invalidate事件。

当发生影响受监视数据库的dropDatabase事件时,在数据库上打开的变更流会引发invalidate事件。

invalidate 事件关闭变更流游标。

无效事件(例如,集合删除或重命名)关闭变更流后,您无法使用resumeAfter恢复变更流。从 MongoDB 4开始。 2 ,您可以使用startAfter无效事件后启动新的变更流。

← 插入

在此页面上