文档菜单
文档首页
/
MongoDB 手册
/ /

使无效

在本页中

  • 摘要
  • 描述
  • 示例
invalidate

当操作使更改流无效时,会触发一个invalidate事件。例如,打开集合后该集合被删除或重命名,将导致一个invalidate事件。

字段
类型
描述
_id
文档

ABSON对象,用作更改流事件的标识符。此值用作在恢复更改流时resumeAfter参数的resumeToken_id对象具有以下形式

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

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

以下是一个使用 resumeToken 恢复更改流的示例,请参阅 恢复更改流。

clusterTime
时间戳

clusterTime 是与事件相关联的操作日志条目的时间戳。

由于 操作日志大小限制多文档事务可能会创建多个操作日志条目。在一个事务中,在给定操作日志条目中编排的更改流事件具有相同的 clusterTime

具有相同 clusterTime 的事件可能并不都与同一事务相关。有些事件根本不与事务相关。从 MongoDB 8.0 开始,这可能适用于任何部署的事件。在之前的版本中,这种行为仅适用于分片集群的事件。

要识别单个事务的事件,您可以在更改流事件文档中使用 lsidtxnNumber 的组合。

更改版本8.0.

操作类型
字符串

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

对于这些更改事件返回 invalidate 的值。

wallTime

数据库操作的数据库服务器日期和时间。与 clusterTime 不同,clusterTime 是从与数据库操作事件相关的操作日志条目中获取的时间戳。

版本6.0.

以下示例说明了一个 invalidate 事件

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

当在受监视集合上打开的更改流遇到删除、重命名或删除数据库操作时,会引发一个 invalidate 事件。

当在数据库上打开的更改流遇到删除数据库事件时,会引发一个 invalidate 事件。

invalidate 事件会关闭更改流游标。

在更改流之后,您不能使用 resumeAfter 来恢复更改流。无效事件(例如,集合删除或重命名)会关闭流。相反,您可以使用startAfter无效事件后启动一个新的更改流。

返回

插入

在本页中

© . All rights reserved.