SunshinePHP 2020 CFP Started

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);

foreach (
$cursor as $result) {
    
var_dump($result);
}
?>

Synopsis de la classe

MongoCommandCursor implements MongoCursorInterface , Iterator {
/* Méthodes */
public batchSize ( int $batchSize ) : MongoCommandCursor
public __construct ( MongoClient $connection , string $ns , array $command = array() )
public static createFromDocument ( MongoClient $connection , string $hash , array $document ) : MongoCommandCursor
public current ( void ) : array
public dead ( void ) : bool
public getReadPreference ( void ) : array
public info ( void ) : array
public key ( void ) : int
public next ( void ) : void
public rewind ( void ) : array
public setReadPreference ( string $read_preference [, array $tags ] ) : MongoCommandCursor
public timeout ( int $ms ) : MongoCommandCursor
public valid ( void ) : bool
}

Sommaire

add a note add a note

User Contributed Notes

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