MongoCursor::awaitData

(PECL mongo >=1.2.11)

MongoCursor::awaitDataУстанавливает, будет ли этот курсор некоторое время ждать, пока настраиваемый курсор вернет больше данных

Описание

public MongoCursor::awaitData ( bool $wait = true ) : MongoCursor

Метод должен использоваться с настраиваемыми курсорами. Если мы находимся в конце, блокирум на некоторое время и не возвращаем никаких данных. После периода ожидания мы возвращаем, как обычно.

Список параметров

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->tailabletrue );
$cursor->awaitDatatrue );

while (
true) {
    if (!
$cursor->hasNext()) {
        
// мы прочитали все результаты, выходим
        
if ($cursor->dead()) {
            break;
        }
    } else {
        
var_dump$cursor->getNext() );
    }
}
?>

Смотрите также

Документация MongoDB по » настраиваемым курсорам.

  • MongoCursor::tailable() - Устанавливает, останется ли этот курсор открытым после извлечения последних результатов