Create a new command cursor from an existing command response document

MongoCommandCursor::__construct
MongoCommandCursor::current
MongoCommandCursor
PHP Manual

# MongoCommandCursor::createFromDocument

(PECL mongo >=1.5.0)

MongoCommandCursor::createFromDocument — Create a new command cursor from an existing command response document

### Description

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

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 hash
var_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

- MongoCommandCursor::__construct() - Create a new command cursor

MongoCommandCursor::__construct
MongoCommandCursor::current
MongoCommandCursor
PHP Manual