Clases del núcleo
PHP Manual

La clase MongoCommandCursor

(PECL mongo >=1.5.0)

Introducción

Un cursor de comandos se usa para recorrer los resultados de un comando de base de datos. Un cursor de comando es similar a un MongoCursor normal excepto que se usa para recorrer el resultado de un comando del servidor en lugar de un resultado de una consulta.

Normalmente no se crean cursores usando el constructor de MongoCommandCursor, se obtiene un nuevo cursor llamando a MongoCollection::commandCursor().

Usar un cursor de comandos en lugar de MongoDB::command() significa que se puede recorrer un conjunto de resultados mucho más grande que el devuelto por MongoDB::command(), que está limitado al tamaño máximo de un documento (actualmente 16MB).

Observe que el cursor no "contiene" los resultados del comando de la base de datos, solamente los gestiona. Por lo tanto, si se imprime un cursor (con, digamos, var_dump() o print_r()), se obtendrá el objeto cursor, no los documentos.

Escenarios de un cursor

Un MongoCommandCursor tiene dos "escenarios de vida": pre y post consulta. Cuando un cursor se crea, aún no ha contactado con la base de datos, por lo que esta en un estado de pre consulta. En este escenario, el cliente puede además especificar la consulta que quiere realizar, incluyendo la configuración del tamaño del lote.

Cuando el cliente intenta obtener un resultado (llamando a MongoCommandCursor::next(), directa o indirectamente), el cursor se traslada al escenario de post consulta. En este punto, el comando ha sido ejecutado por la base de datos y solamente se puede configurar el tamaño del lote.

Ejemplo #1 Añadir opciones a MongoCommandCursor

<?php

$cursor 
= new MongoCommandCursor(...);

// la base de datos aún no ha sido consultada, por lo que se pueden añadir más opciones
$cursor $cursor->batchSize);

var_dump($cursor->getNext());
// ahora la base de datos ha sido consultada y no se pueden añadir más opciones
?>

Sinopsis de la Clase

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

Ver también

Tabla de contenidos


Clases del núcleo
PHP Manual