Longhorn PHP 2026 - Call For Papers

MongoDB\Driver\Cursor::isDead

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::isDeadComprueba si el cursor está agotado o puede tener resultados adicionales

Descripción

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

Comprueba si no hay definitivamente más resultados disponibles en el cursor. Este método es similar al método » cursor.isExhausted() en el MongoDB shell y es principalmente útil al iterar » cursores persistentes.

Un cursor no tiene más resultados y se considera "agotado" cuando se cumple una de las siguientes condiciones:

  • La actual serie de resultados se ha iterado completamente y el identificador del cursor es cero (es decir, no se puede emitir un » getMore).
  • Se encontró un error al iterar el cursor.
  • El cursor alcanzó su límite configurado.

Por diseño, no siempre es posible determinar si un cursor tiene resultados adicionales. Los casos en los que un cursor puede tener más datos disponibles son los siguientes:

  • Hay documentos adicionales en la actual serie de resultados, que están almacenados en el lado-cliente. Iterar obtendrá un documento del búfer local.
  • No hay documentos adicionales en la actual serie de resultados (es decir, búfer local), pero el identificador del cursor no es cero. Iterar solicitará más documentos al servidor mediante una operación » getMore, que puede o no devolver más resultados y/o indicar que el cursor ha sido cerrado en el servidor al devolver cero para su identificador.

Parámetros

Esta función no contiene ningún parámetro.

Valores devueltos

Devuelve true si no hay definitivamente más resultados disponibles en el cursor, y false en caso contrario.

Errores/Excepciones

  • Lanza una excepción MongoDB\Driver\InvalidArgumentException en caso de error durante el análisis de un argumento.

Ejemplos

Ejemplo #1 Ejemplo de 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());

?>

El ejemplo anterior mostrará:

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

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top