Checks if the cursor is exhausted or may have additional results

# MongoDB\Driver\Cursor::isDead

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::isDead — Checks if the cursor is exhausted or may have additional results

### Description

final public MongoDB\Driver\Cursor::isDead(): bool

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.

### Parameters

This function has no parameters.

### Return Values

Returns `true` if there are definitely no additional results available on the cursor, and `false` otherwise.

### Errors/Exceptions

- Throws MongoDB\Driver\Exception\InvalidArgumentException on argument parsing errors.

### Examples

Example #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());
?>`

The above example will output:

    bool(false)
    bool(false)
    bool(false)
    bool(true)

### See Also

- » Tailable Cursors in the MongoDB manual
- » cursor.isExhausted() in the MongoDB manual

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open