# MongoCollection::parallelCollectionScan

(PECL mongo >=1.5.0)

MongoCollection::parallelCollectionScan — Returns an array of cursors to iterator over a full collection in parallel

### Description

public MongoCollection::parallelCollectionScan ( int `$num_cursors` ) : array[MongoCommandCursor]

This method returns an array of a maximum of `num_cursors` cursors. An iteration over one of the returned cursors results in a partial set of documents for a collection. Iteration over all the returned cursors results in getting every document back from the collection.

This method is a wrapper for the `parallelCollectionScan` MongoDB command.

### Parameters

`num_cursors`

  The number of cursors to request from the server. Please note, that the server can return less cursors than you requested.

### Return Values

Returns an array of MongoCommandCursor objects.

### Examples

Example #1 MongoCollection::parallelCollectionScan() example

Returning all documents in a collection by using multiple cursors.

`<?php
$m = new MongoClient;
$c = $m->demo->cities;
/* Request three cursors */
$cursors = $c->parallelCollectionScan( 3 );
/* Add all the cursors to the MultipleIterator */
$mi = new MultipleIterator( MultipleIterator::MIT_NEED_ANY );
foreach ( $cursors as $cursor )
{
$mi->attachIterator( $cursor );
}
/* Iterate over all the associated cursors */
foreach ( $mi as $items )
{
foreach ( $items as $item )
{
if ( $item !== NULL )
{
echo $item['name'], "\n";
}
}
}
?>`

### See Also

- MultipleIterator
- MongoCommandCursor
- MongoDB::command() - Execute a database command