MongoCursor::awaitData
(PECL mongo >=1.2.11)
MongoCursor::awaitData — Устанавливает, будет ли этот курсор некоторое время ждать, пока настраиваемый курсор вернет больше данных
Описание
Метод должен использоваться с настраиваемыми курсорами. Если мы находимся в конце, блокирум на некоторое время и не возвращаем никаких данных. После периода ожидания мы возвращаем, как обычно.
Список параметров
-
wait
-
Если курсор должен ждать, пока больше данных не станет доступно.
Возвращаемые значения
Возвращает курсор.
Ошибки
Выдает исключение MongoCursorException, если этот курсор начал итерацию.
Примеры
Пример #1 Пример использования MongoCursor::awaitData()
В этом примере мы подключаем "oplog" и вместо сна во время каждой итерации устанавливаем опцию MongoCursor::awaitData(). MongoCursor::hasNext() теперь будет блокироваться, пока не станет доступно больше данных.
<?php
$m = new MongoClient( 'mongodb://localhost:13000', array( 'replSet' => 'seta' ) );
$c = $m->local->selectCollection( 'oplog.rs' );
$cursor = $c->find( array( 'ns' => 'demo.article', 'op' => 'i' ) );
$cursor->tailable( true );
$cursor->awaitData( true );
while (true) {
if (!$cursor->hasNext()) {
// мы прочитали все результаты, выходим
if ($cursor->dead()) {
break;
}
} else {
var_dump( $cursor->getNext() );
}
}
?>
Смотрите также
Документация MongoDB по » настраиваемым курсорам.
- MongoCursor::tailable() - Устанавливает, останется ли этот курсор открытым после извлечения последних результатов