| =======================================
MongoDB\\ChangeStream::getResumeToken()
=======================================
.. versionadded:: 1.5
.. default-domain:: mongodb
.. contents:: On this page
   :local:
   :backlinks: none
   :depth: 1
   :class: singlecol
Definition
----------
.. phpmethod:: MongoDB\\ChangeStream::getResumeToken()
   Returns the cached resume token that will be used to resume the change
   stream.
   .. code-block:: php
      function getResumeToken(): array|object|null
Return Values
-------------
An array or object, or ``null`` if there is no cached resume token. The return
type will depend on the ``typeMap`` option for the ``watch()`` method used to
create the change stream.
Examples
--------
This example captures the resume token for a change stream after encountering
an ``invalidate`` event and uses it to construct a second change stream using
the ``startAfter`` option.
.. code-block:: php
   <?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]);
See Also
--------
- :phpmethod:`MongoDB\\Client::watch()`
- :phpmethod:`MongoDB\\Collection::watch()`
- :phpmethod:`MongoDB\\Database::watch()`
- :manual:`Resume a Change Stream </changeStreams#resume-a-change-stream>`
  documentation in the MongoDB manual
 |