PHP 8.5.0 Alpha 2 available for testing

MongoDB\Driver\Cursor::isDead

(mongodb >=1.0.0)

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

Описание

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

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

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

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

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

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

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

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

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

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

Ошибки

Примеры

Пример #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)

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

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top