invalidate

概括

invalidate

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

描述

Field 类型 描述
_id Document 一个BSON对象,用作更改流事件的标识符。该值用作恢复更改流时的参数resumeTokenresumeAfter_id对象具有以下形式:`{ "_data" : <BinData hex string>}_data类型取决于 MongoDB 版本,在某些情况下,还取决于更改流打开或恢复时的[功能兼容性版本 (fCV) 。](https://www.mongodb.com/docs/manual/reference/command/setFeatureCompatibilityVersion/#std-label-view-fcv)有关类型的完整列表,请参阅[恢复令牌](https://www.mongodb.com/docs/manual/changeStreams/#std-label-change-stream-resume-token)_data。有关通过 恢复更改流的示例resumeToken`,请参阅 恢复更改流。
clusterTime Timestamp 与事件关联的 oplog 条目的时间戳。与 多文档事务关联的更改流事件通知 都具有相同的clusterTime值:提交事务的时间。在分片集群上,具有相同事件的事件clusterTime可能并不都与同一事务相关。有些事件与交易根本无关。要识别单个事务的事件,您可以在变更流事件文档中使用lsid和的组合。txnNumber4.0版本中的新功能
operationType string 更改通知报告的操作类型。invalidate返回这些更改事件的值。
wallTime ISODate 数据库操作的服务器日期和时间。wallTime 不同之处clusterTime在于,clusterTime时间戳是从与数据库操作事件关联的 oplog 条目中获取的。6.0版本中的新内容

例子

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

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

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

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

invalidate事件关闭更改流光标。

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

参见

原文 - invalidate

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-09-01 17:10:26

results matching ""

    No results matching ""