Php/docs/mongocommandcursor.createfromdocument
MongoCommandCursor::createFromDocument
(PECL mongo >=1.5.0)
MongoCommandCursor::createFromDocument — Create a new command cursor from an existing command response document
说明
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.
参数
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,nsandfirstBatchfields. 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.
返回值
Returns the new cursor.
范例
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 );?>
以上例程的输出类似于:
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.