/
home
/
ubuntu
/
html
/
cravings
/
vendor
/
mongodb
/
mongodb
/
docs
/
reference
/
method
/
Upload File
HOME
================================ MongoDB\\ChangeStream::current() ================================ .. default-domain:: mongodb .. contents:: On this page :local: :backlinks: none :depth: 1 :class: singlecol Definition ---------- .. phpmethod:: MongoDB\\ChangeStream::current() Returns the current event in the change stream. .. code-block:: php function current(): array|object|null The structure of each event document will vary based on the operation type. See :manual:`Change Events </reference/change-events/>` in the MongoDB manual for more information. Return Values ------------- An array or object for the current event in the change stream, or ``null`` if there is no current event (i.e. :phpmethod:`MongoDB\\ChangeStream::valid()` returns ``false``). The return type will depend on the ``typeMap`` option for :phpmethod:`MongoDB\\Collection::watch()`. Examples -------- This example reports events while iterating a change stream. .. 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(); $ns = sprintf('%s.%s', $event['ns']['db'], $event['ns']['coll']); $id = json_encode($event['documentKey']['_id']); switch ($event['operationType']) { case 'delete': printf("Deleted document in %s with _id: %s\n\n", $ns, $id); break; case 'insert': printf("Inserted new document in %s\n", $ns); echo json_encode($event['fullDocument']), "\n\n"; break; case 'replace': printf("Replaced new document in %s with _id: %s\n", $ns, $id); echo json_encode($event['fullDocument']), "\n\n"; break; case 'update': printf("Updated document in %s with _id: %s\n", $ns, $id); echo json_encode($event['updateDescription']), "\n\n"; break; } } Assuming that a document was inserted, updated, and deleted while the above script was iterating the change stream, the output would then resemble: .. code-block:: none Inserted new document in test.inventory {"_id":{"$oid":"5a81fc0d6118fd1af1790d32"},"name":"Widget","quantity":5} Updated document in test.inventory with _id: {"$oid":"5a81fc0d6118fd1af1790d32"} {"updatedFields":{"quantity":4},"removedFields":[]} Deleted document in test.inventory with _id: {"$oid":"5a81fc0d6118fd1af1790d32"} See Also -------- - :phpmethod:`MongoDB\\Client::watch()` - :phpmethod:`MongoDB\\Collection::watch()` - :phpmethod:`MongoDB\\Database::watch()` - :php:`Iterator::current() <iterator.current>` - :ref:`Tailable Cursor Iteration <php-tailable-cursor>` - :manual:`Change Streams </changeStreams>` documentation in the MongoDB manual - :manual:`Change Events </reference/change-events/>` documentation in the MongoDB manual