La Classe MongoCommandCursor
(PECL mongo >=1.5.0)
Introduction
Un curseur de commande est similaire à un MongoCursor excepté qu'il est utilisé pour parcourir les résultats d'une commande de base de données au lieu d'une requête normale. Les curseurs de commande sont utiles pour parcourir de larges jeux de résultats qui peuvent dépasser la taille limite d'un document (actuellement de 16MB) d'une seule réponse MongoDB::command().
Malgré le fait que vous pouvez créer des curseurs de commande en utilisant la méthode MongoCommandCursor::__construct() ou la méthode MongoCommandCursor::createFromDocument(), vous devriez plutôt utiliser une commande spécifique comme MongoCollection::aggregateCursor().
Noter que le curseur ne contient pas les résultats de la commande de la base de données ; il ne gère que la consultation du résultat. Aussi, si vous affichez un curseur (i.e. avec une fonction comme var_dump() ou print_r()), vous verrez l'objet curseur, mais vous ne verrez pas les documents résultants.
Les états d'un Curseur
Un MongoCommandCursor possède 2 "périodes de vie" : pré- et post- commande. Lorsqu'un curseur est créé, il n'a pas encore interrogé la base de données, alors il est dans son état pré-commande. Lorsque le client tente d'abord de récupérer un résultat (en appelant la méthode MongoCommandCursor::rewind(), directement ou indirectement), le curseur se déplace dans un état de post-commande.
La taille du lot et la durée maximale d'attente du socket du curseur de commande peuvent être configurés dans les deux états pre- et post-.
Exemple #1 Ajout d'options à MongoCommandCursor
<?php
$cursor = new MongoCommandCursor(...);
$cursor = $cursor->batchSize( 4 );
foreach ($cursor as $result) {
var_dump($result);
}
?>
Synopsis de la classe
$connection
, string $hash
, array $document
)Sommaire
- MongoCommandCursor::batchSize — Limite le nombre d'éléments retournés dans un lot
- MongoCommandCursor::__construct — Crée un nouveau curseur de commande
- MongoCommandCursor::createFromDocument — Crée un nouveau curseur de commande depuis un document de commande existant
- MongoCommandCursor::current — Retourne l'élément courant
- MongoCommandCursor::dead — Vérifie s'il y a des documents qui n'ont pas encore été envoyés depuis la base de données
- MongoCommandCursor::getReadPreference — Récupère les préférences de lecture pour cette commande
- MongoCommandCursor::info — Récupère des informations sur la création du curseur et son itération
- MongoCommandCursor::key — Retourne l'index du résultat courant du jeu de résultats
- MongoCommandCursor::next — Avance le curseur au prochain résultat
- MongoCommandCursor::rewind — Exécute la commande, et replace le curseur au début du jeu de résultats
- MongoCommandCursor::setReadPreference — Défini les préférences de lecture pour cette commande
- MongoCommandCursor::timeout — Défini le délai d'attente maximal côté client pour cette commande
- MongoCommandCursor::valid — Vérifie si le curseur lit un résultat valide