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
) : MongoCommandCursorSommaire
- 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
Version en cache
22/11/2024 06:04:23 Cette version de la page est en cache (à la date du 22/11/2024 06:04:23) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-class.mongocommandcursor.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.