CakeFest 2024: The Official CakePHP Conference

MongoDB\Driver\Cursor::isDead

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::isDeadVérifie si le curseur est épuisé ou peut avoir des résultats supplémentaires

Description

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

Vérifie s'il n'y a plus aucun résultat supplémentaire disponible sur le curseur. Cette méthode est similaire à la méthode » cursor.isExhausted() dans le shell MongoDB et son utilité primaire et lors de l'itération de » curseurs de queue.

Un curseur n'a plus de résultats supplémentaires et est considéré "mort" s'il satisfait l'une des conditions ci-dessous:

  • Le lot actuel a était complètement itéré et l'ID du curseur est zéro (c.à.d. il est impossible de délivrer un » getMore).
  • Une erreur a été rencontré lors de l'itération du curseur.
  • Le curseur a atteint sa limite configurée.

Par sa conception, il n'est pas toujours possible de déterminer si un curseur a des résultats supplémentaires. Les cas où un curseur peut avoir plus de données disponibles sont les suivants :

  • Il y a des documents supplémentaires dans le lot courrant, qui sont tamponée du côté client. Itérer récupèrera un document du tampon local.
  • Il n'y a pas de documents supplémentairesdans le lot courrant (c.à.d. tampon local), mais le l'ID du curseur est différent de zéro. Itérer solliicitera plus de documents depuis le serveur via une opération » getMore, qui retournera ou pas des résultats supplémentaires et / ou indiquera que le curseur a été fermé sur le serveur en retournant zéro pour son ID.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si c'est confirmé qu'aucun résultat supplémentaire n'est disponible sur le curseur, et false sinon.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 Exemple avec 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());

?>

Résultat de l'exemple ci-dessus est similaire à :

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

Voir aussi

add a note

User Contributed Notes

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