文档菜单
文档首页
/ / /
PHP库手册
/ / /

MongoDB\ChangeStream::getResumeToken()

本页内容

  • 定义
  • 返回值
  • 示例
  • 另请参阅

在版本1.5.

MongoDB\ChangeStream::getResumeToken()

返回用于恢复更改流的缓存的恢复令牌。

function getResumeToken(): array|object|null

一个数组或对象,如果没有缓存的恢复令牌,则为 null。返回类型将取决于用于创建更改流的 watch() 方法的 typeMap 选项。

此示例在遇到 invalidate 事件后捕获更改流的恢复令牌,并使用它通过 startAfter 选项构造第二个更改流。

<?php
$uri = 'mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet';
$collection = (new MongoDB\Client($uri))->test->inventory;
$changeStream = $collection->watch();
for ($changeStream->rewind(); true; $changeStream->next()) {
if ( ! $changeStream->valid()) {
continue;
}
$event = $changeStream->current();
if ($event['operationType'] === 'invalidate') {
$startAfter = $changeStream->getResumeToken();
break;
}
printf("%d: %s\n", $changeStream->key(), $event['operationType']);
}
$changeStream = $collection->watch([], ['startAfter' => $startAfter]);
  • MongoDB\Client::watch()

  • MongoDB\Collection::watch()

  • MongoDB\Database::watch()

  • 恢复更改流 的 MongoDB 手册文档

返回

getCursorId()