PHPKonf 2020 Online

MongoCommandCursor::createFromDocument

(PECL mongo >=1.5.0)

MongoCommandCursor::createFromDocumentCrear un nuevo cursor de comando desde un documento de cursor existente

Descripción

public static MongoCommandCursor::createFromDocument ( MongoClient $connection , string $hash , array $document ) : MongoCommandCursor

Use este método si tiene un resultado de comando sin tratar con información de cursor en él. Observe que los cursores creados con este método no se pueden iterar varias veces, ya que carecen del comando original necesario para la reejecución.

Parámetros

connection

La conexión a la base de datos.

hash

El hash de la conexión, obtenida mediante el tercer argumento por referencia de MongoDB:command().

document

El documento con información de cursor en él. Es neceario que este documento contenga los campos id, ns y firstBatch. Tal documento se obtiene invocando a MongoDB:command() con los argumentos apropiados para que devuelva un cursor, y no un resultado. Véase el ejemplo de más abajo.

Valores devueltos

Devuelve el nuevo cursor.

Ejemplos

Ejemplo #1 MongoCommandCursor::createFromDocument()

<?php
$m 
= new MongoClient;
$d $m->demo;

// Definir la tubería de totalización
$tubería = [
    [ 
'$group' => [
        
'_id' => '$country_code',
        
'timezones' => [ '$addToSet' => '$timezone' ]
    ] ],
    [ 
'$sort' => [ '_id' => ] ],
];

// Ejecutar el comando. La opción "cursor" le indica al servidor que devuelva
// información del cursor en la respuesta en lugar de los resultados en línea.
$r $d->command(
    [
        
'aggregate' => 'cities',
        
'pipeline' => $tubería,
        
'cursor' => [ 'batchSize' => ],
    ],
    
null,
    
$hash
);

// Mostrar el resultado y el hash
var_dump$r$hash );

// Construir el cursor de comando
$cursor MongoCommandCursor::createFromDocument$m$hash$r );
?>

El resultado del ejemplo sería algo similar a:

array(2) {
  ["cursor"]=>
  array(3) {
    ["id"]=>
    object(MongoInt64)#5 (1) {
      ["value"]=>
      string(12) "392143983421"
    }
    ["ns"]=>
    string(11) "demo.cities"
    ["firstBatch"]=>
    array(1) {
      [0]=>
      array(2) {
        ["_id"]=>
        string(2) "AD"
        ["timezones"]=>
        array(1) {
          [0]=>
          string(14) "Europe/Andorra"
        }
      }
    }
  }
  ["ok"]=>
  float(1)
}
string(25) "localhost:27017;-;.;17617"

Como se puede ver, la información del cursor devuelta posee los campos id, ns y firstBatch.

Ver también

add a note add a note

User Contributed Notes

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