MongoDB\Driver\Cursor::isDead
(mongodb >=1.0.0)
MongoDB\Driver\Cursor::isDead — Verifica se o cursor está esgotado ou pode ter resultados adicionais
Descrição
Verifica se definitivamente não há resultados adicionais disponíveis no cursor. Este método é semelhante ao método » cursor.isExhausted() no shell do MongoDB e é útil principalmente ao iterar » cursores adaptáveis.
Um cursor não tem resultados adicionais e é considerado "morto" quando uma das seguintes opções for verdadeira:
- O lote atual foi totalmente iterado e o ID do cursor é zero (ou seja, um » getMore não pode ser emitido).
- Foi encontrado um erro ao iterar o cursor.
- O cursor atingiu o limite configurado.
Por padrão, nem sempre é possível determinar se um cursor possui resultados adicionais. Os casos em que um cursor pode ter mais dados disponíveis são os seguintes:
- Existem documentos adicionais no lote atual, que são armazenados em buffer no lado do cliente. A iteração irá buscar um documento do buffer local.
- Não há documentos adicionais no lote atual (ou seja, buffer local), mas o ID do cursor é diferente de zero. A iteração solicitará mais documentos do servidor por meio de uma operação » getMore, que pode ou não retornar resultados adicionais e/ou indicar que o cursor foi fechado no servidor retornando zero para seu ID.
Parâmetros
Esta função não possui parâmetros.
Valor Retornado
Retorna true
se definitivamente não houver resultados adicionais disponíveis no
cursor e false
caso contrário.
Erros/Exceções
- Lança uma exceção MongoDB\Driver\Exception\InvalidArgumentException em caso de erro ao analisar argumentos.
Exemplos
Example #1 Exemplo 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());
?>
O exemplo acima produzirá:
bool(false) bool(false) bool(false) bool(true)
Veja Também
- » Cursores Adaptáveis no manual do MongoDB
- » cursor.isExhausted() no manual do MongoDB