Php/docs/mongocommandcursor.createfromdocument

From Get docs

MongoCommandCursor::createFromDocument

(PECL mongo >=1.5.0)

MongoCommandCursor::createFromDocumentCreate a new command cursor from an existing command response document


Description

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

Use this method if you have a raw command result with cursor information in it. Note that cursors created with this method cannot be iterated multiple times, as they will lack the original command necessary for re-execution.


Parameters

connection
Database connection.
hash
The connection hash, as obtained through the third by-reference argument to MongoDB::command().
document
Document with cursor information in it. This document needs to contain the id, ns and firstBatch fields. Such a document is obtained by calling the MongoDB::command() with appropriate arguments to return a cursor, and not just an inline result. See the example below.


Return Values

Returns the new cursor.


Examples

Example #1 MongoCommandCursor::createFromDocument()

<?php$m = new MongoClient;$d = $m->demo;// Define the aggregation pipeline$pipeline = [    [ '$group' => [        '_id' => '$country_code',        'timezones' => [ '$addToSet' => '$timezone' ]    ] ],    [ '$sort' => [ '_id' => 1 ] ],];// Execute the command. The "cursor" option instructs the server to return// cursor information in the response instead of inline results.$r = $d->command(    [        'aggregate' => 'cities',        'pipeline' => $pipeline,        'cursor' => [ 'batchSize' => 1 ],    ],    null,    $hash);// Show result and hashvar_dump( $r, $hash );// Construct the command cursor$cursor = MongoCommandCursor::createFromDocument( $m, $hash, $r );?>

The above example will output something similar to:


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"

As you can see, the returned cursor information has the id, ns and firstBatch fields.


See Also