(PECL mongo >=1.5.0)
MongoCollection::parallelCollectionScan — Возвращает массив курсоров в итератор по всей параллельной коллекции
$num_cursors
) : array[MongoCommandCursor]Этот метод возвращает массив максимум num_cursors из курсоров. Итерация по одному из возвращенных курсоров приводит к частичному набору документов для коллекции. Итерация по всем возвращенным курсорам приводит к тому, что каждый документ возвращается из коллекции.
Этот метод является оболочкой для команды parallelCollectionScan MongoDB.
num_cursors
Количество курсоров, запрашиваемых с сервера. Обратите внимание, что сервер может вернуть меньше курсоров, чем вы запрашивали.
Возвращает массив объектов MongoCommandCursor.
Пример #1 Пример использования MongoCollection::parallelCollectionScan()
Возврат всех документов в коллекции с использованием нескольких курсоров.
<?php
$m = new MongoClient;
$c = $m->demo->cities;
/* Запрашиваем три курсора */
$cursors = $c->parallelCollectionScan( 3 );
/* Добавляем все курсоры в MultipleIterator */
$mi = new MultipleIterator( MultipleIterator::MIT_NEED_ANY );
foreach ( $cursors as $cursor )
{
$mi->attachIterator( $cursor );
}
/* Итерация по всем связанным курсорам */
foreach ( $mi as $items )
{
foreach ( $items as $item )
{
if ( $item !== NULL )
{
echo $item['name'], "\n";
}
}
}
?>