Docs 菜单
Docs 主页
/
MongoDB Manual
/ /

invalidate

在此页面上

  • 总结
  • 说明
  • 例子
invalidate

当操作将变更流渲染为无效时发生 invalidate 事件。例如,在后来被删除或重命名的集合上打开的变更流将导致 invalidate 事件。

字段
类型
说明

_id

文档

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

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

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

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

clusterTime

时间戳

clusterTime 是来自与该事件关联的oplog条目的时间戳。

由于oplog大小限制,多文档事务可能会创建多个oplog条目。在ACID 事务中,给定oplog条目中暂存的变更流事件股票相同的clusterTime

具有相同clusterTime的事件可能并不都与同一ACID 事务相关。 有些事件与ACID 事务完全无关。 从MongoDB 8.0开始,任何部署上的事件都可能如此。 在以前的版本中,这种行为只适用于分分片集群上的事件。

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

在版本8.0中进行了更改

operationType

字符串

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

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

wallTime

数据库操作的服务器日期和时间。wallTimeclusterTime 的不同之处在于,clusterTime 是从与数据库操作事件相关的 oplog 条目中提取的时间戳。

6.0 版本中的新功能

以下示例说明了 invalidate 事件:

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

当发生影响受监视集合的删除重命名dropDatabase 操作时,在集合上打开的变更流会引发 invalidate 事件。

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

invalidate 事件关闭变更流游标。

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

后退

insert

在此页面上