MongoCommandCursor
PHP Manual

MongoCommandCursor::createFromDocument

(PECL mongo >=1.5.0)

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

説明

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

Use this method if you have a raw command result with cursor information in it.

パラメータ

connection

Database connection.

hash

The connection has, 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 a result. See the example below.

返り値

Returns the new cursor.

例1 MongoCommandCursor::createFromDocument()

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

// setup the pipeline
$pipeline = [
    [ 
'$group' => [
        
'_id' => '$country_code',
        
'timezones' => [ '$addToSet' => '$timezone' ]
    ] ],
    [ 
'$sort' => [ '_id' => ] ],
];

// run the command. The "cursor" option below instructs the server to return a cursor information document instead of results
$r $d->command(
    [
        
'aggregate' => 'cities',
        
'pipeline' => $pipeline,
        
'cursor' => [ 'batchSize' => ],
    ],
    
null,
    
$hash
);

// Show result and hash
var_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.


MongoCommandCursor
PHP Manual