# MongoCommandCursor::__construct

(PECL mongo >=1.5.0)

MongoCommandCursor::__construct — Create a new command cursor

### Description

public MongoCommandCursor::__construct ( MongoClient `$connection` , string `$ns` , array `$command` = array() )

Generally, you should not have to construct a MongoCommandCursor manually, as there are helper functions such as MongoCollection::aggregateCursor() and MongoCollection::parallelCollectionScan(); however, if the server introduces new commands that can return cursors, this constructor will be useful in the absence of specific helper methods. You may also consider using MongoCommandCursor::createFromDocument().

### Parameters

`connection`

  Database connection.

`ns`

  Full name of the database and collection (e.g. `"test.foo"`)

`command`

  Database command.

### Return Values

Returns the new cursor.

### Examples

Example #1 MongoCommandCursor example

`<?php
$m = new MongoClient;
// Define the aggregation pipeline
$pipeline = [
[ '$group' => [
'_id' => '$country_code',
'timezones' => [ '$addToSet' => '$timezone' ]
] ],
[ '$sort' => [ '_id' => 1 ] ],
];
// Construct a MongoCommandCursor object
$cursor = new MongoCommandCursor(
$m, // MongoClient object
'demo.cities', // namespace
[
'aggregate' => 'cities',
'pipeline' => $pipeline,
'cursor' => [ 'batchSize' => 0 ],
]
);
foreach($cursor as $result) {
…
}
?>`

### See Also

- MongoCommandCursor::createFromDocument() - Create a new command cursor from an existing command response document
- MongoCollection::aggregateCursor() - Execute an aggregation pipeline command and retrieve results through a cursor
- MongoCollection::parallelCollectionScan() - Returns an array of cursors to iterator over a full collection in parallel