MongoDB\Driver\Cursor::isDead
(mongodb >=1.0.0)
MongoDB\Driver\Cursor::isDead — Checks if the cursor is exhausted or may have additional results
Beschreibung
Checks whether there are definitely no additional results available on the cursor. This method is similar to the » cursor.isExhausted() method in the MongoDB shell and is primarily useful when iterating » tailable cursors.
A cursor has no additional results and is considered "dead" when one of the following is true:
- The current batch has been fully iterated and the cursor ID is zero (i.e. a » getMore cannot be issued).
- An error was encountered while iterating the cursor.
- The cursor reached its configured limit.
By design, it is not possible to always determine whether a cursor has additional results. The cases where a cursor may have more data available is as follows:
- There are additional documents in the current batch, which are buffered on the client side. Iterating will fetch a document from the local buffer.
- There are no additional documents in the current batch (i.e. local buffer), but the cursor ID is non-zero. Iterating will request more documents from the server via a » getMore operation, which may or may not return additional results and/or indicate that the cursor has been closed on the server by returning zero for its ID.
Parameter-Liste
Diese Funktion besitzt keine Parameter.
Rückgabewerte
Returns true
if there are definitely no additional results available on the
cursor, and false
otherwise.
Fehler/Exceptions
- Throws MongoDB\Driver\Exception\InvalidArgumentException on argument parsing errors.
Beispiele
Beispiel #1 MongoDB\Driver\Cursor::isDead() example
<?php
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([]);
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);
$cursor = $manager->executeQuery('db.collection', $query);
$iterator = new IteratorIterator($cursor);
$iterator->rewind();
var_dump($cursor->isDead());
$iterator->next();
var_dump($cursor->isDead());
$iterator->next();
var_dump($cursor->isDead());
$iterator->next();
var_dump($cursor->isDead());
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
bool(false) bool(false) bool(false) bool(true)
Siehe auch
- » Tailable Cursors in the MongoDB manual
- » cursor.isExhausted() in the MongoDB manual