Проверяет, исчерпан ли курсор или может содержать дополнительные результаты

# MongoDB\Driver\Cursor::isDead

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::isDead — Проверяет, исчерпан ли курсор или может содержать дополнительные результаты

### Описание

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

Проверяет, нет ли у курсора дополнительных результатов. Этот метод аналогичен методу » cursor.isExhausted() в оболочке MongoDB и в первую очередь полезен при выполнении итерации » хвостовых курсоров.

Курсор не имеет дополнительных результатов и считается "мёртвым", если выполняется одно из следующих условий:

- Текущий пакет был полностью повторён и идентификатор курсора равен нулю (то есть » getMore не может быть выполнен).
- Произошла ошибка при итерации курсора.
- Курсор достиг своего установленного предела.

Преднамеренно не всегда возможно определить, имеет ли курсор дополнительные результаты. Случаи, когда курсор может иметь больше доступных данных, следующие:

- В текущем пакете есть дополнительные документы, которые буферизируются на стороне клиента. Итерация извлечёт документ из локального буфера.
- В текущем пакете нет дополнительных документов (то есть локального буфера), но идентификатор курсора не равен нулю. Итерация будет запрашивать больше документов с сервера с помощью операции » getMore, которая может возвращать или не возвращать дополнительные результаты и/или указывать, что курсор был закрыт на сервере, возвращая ноль для его идентификатора.

### Список параметров

Сигнатура функции не содержит параметров.

### Возвращаемые значения

Возвращает `true`, если курсор не содержит никаких дополнительных результатов и `false` в противном случае.

### Ошибки

- При ошибке парсинга аргумента метод выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException.

### Примеры

Пример #1 Пример использования MongoDB\Driver\Cursor::isDead()

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

    ?>

Результат выполнения приведённого примера:

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

### Смотрите также

- » Хвостовые курсоры в руководстве MongoDB
- » cursor.isExhausted() в руководстве MongoDB

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