Docs HomeMongoDB Manual

invalidate

On this page本页内容

Summary摘要

invalidate

An invalidate event occurs when an operation renders the change stream invalid. 当操作使更改流无效时,会发生invalidate事件。For example, a change stream opened on a collection that was later dropped or renamed would cause an invalidate event.例如,在后来被删除或重命名的集合上打开的更改流会导致invalidate事件。

Description描述

Field字段Type类型Description描述
_idDocumentA BSON object which serves as an identifier for the change stream event. BSON对象,用作更改流事件的标识符。This value is used as the resumeToken for the resumeAfter parameter when resuming a change stream. 恢复更改流时,此值用作resumeAfter参数的resumeTokenThe _id object has the following form:_id对象具有以下形式:
{
"_data" : <BinData|hex string>
}
The _data type depends on the MongoDB versions and, in some cases, the feature compatibility version (fCV) at the time of the change stream's opening or resumption. _data类型取决于MongoDB版本,在某些情况下,还取决于更改流打开或恢复时的功能兼容性版本(fCV)See Resume Tokens for the full list of _data types.请参阅恢复令牌以获取_data类型的完整列表。
For an example of resuming a change stream by resumeToken, see Resume a Change Stream. 有关通过resumeToken恢复更改流的示例,请参阅恢复更改流
clusterTimeTimestampThe timestamp from the oplog entry associated with the event.与事件关联的oplog条目中的时间戳。
Change stream event notifications associated with a multi-document transaction all have the same clusterTime value: the time when the transaction was committed.多文档事务关联的更改流事件通知都具有相同的clusterTime值:事务提交的时间。
On sharded clusters, events with the same clusterTime may not all relate to the same transaction. 在分片集群上,具有相同clusterTime的事件可能并不都与同一事务相关。Some events don't relate to a transaction at all.有些事件根本与事务无关。
To identify events for a single transaction, you can use the combination of lsid and txnNumber in the change stream event document. 要识别单个事务的事件,可以在变更流事件文档中使用lsidtxnNumber的组合。
New in version 4.0. 4.0版新增。
operationTypestringThe type of operation that the change notification reports.更改通知报告的操作类型。
Returns a value of invalidate for these change events. 返回这些更改事件的invalidate值。
wallTimeISODateThe server date and time of the database operation. 数据库操作的服务器日期和时间。wallTime differs from clusterTime in that clusterTime is a timestamp taken from the oplog entry associated with the database operation event. wallTimeclusterTime的不同之处在于,clusterTime是从与数据库操作事件关联的oplog条目中获取的时间戳。
New in version 6.0. 6.0版新增。

Example实例

The following example illustrates an invalidate event:以下示例说明了一个invalidate事件:

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

Change streams opened on collections raise an invalidate event when a drop, rename, or dropDatabase operation occurs that affects the watched collection.当发生影响监视的集合的droprenamedropDatabase操作时,在集合上打开的更改流会引发invalidate事件。

Change streams opened on databases raise an invalidate event when a dropDatabase event occurs that affects the watched database.当发生影响监视数据库的dropDatabase事件时,在数据库上打开的更改流会引发invalidate事件。

invalidate events close the change stream cursor.事件关闭更改流游标。

You cannot use resumeAfter to resume a change stream after an invalidate event (for example, a collection drop or rename) closes the stream. 无效事件(例如,集合丢弃或重命名)关闭更改流后,不能使用resumeAfter恢复更改流。Starting in MongoDB 4.2, you can use startAfter to start a new change stream after an invalidate event.从MongoDB 4.2开始,您可以使用startAfterinvalidate事件后启动一个新的更改流。