(PECL mongo >=1.2.11)
MongoCursor::awaitData — Establece si el cursor esperará un momento a que un cursor de seguimiento devuelva más datos
Este método se usa con cursores de seguimiento. Si se está al final de los datos, se bloquea un momento en lugar de no devolver datos. Después de un tiempo de espera, se devuelve de la manera normal.
wait
Si el cursor debería esperar a que estén disponibles más datos.
Devuelve este cursor.
Lanza una MongoCursorException si este cursor ha empezado a iterar.
Ejemplo #1 Ejemplo de MongoCursor::awaitData()
En este ejemplo, le seguimos la pista a "oplog" y, en lugar de dormir durante cada iteración, se establece la opción MongoCursor::awaitData(). MongoCursor::hasNext() ahora bloqueará hasta que haya más datos disponibles.
<?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()) {
// we've read all the results, exit
if ($cursor->dead()) {
break;
}
} else {
var_dump( $cursor->getNext() );
}
}
?>
La documentación principal de MongoDB sobre » cursores de seguimiento.