MongoCursor::awaitData
(PECL mongo >=1.2.11)
MongoCursor::awaitData — Establece si el cursor esperará un momento a que un cursor de seguimiento devuelva más datos
Descripción
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.
Parámetros
-
wait -
Si el cursor debería esperar a que estén disponibles más datos.
Valores devueltos
Devuelve este cursor.
Errores/Excepciones
Lanza una MongoCursorException si este cursor ha empezado a iterar.
Ejemplos
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() );
}
}
?>
Ver también
La documentación principal de MongoDB sobre » cursores de seguimiento.
- MongoCursor::tailable() - Establece si este cursor se dejará abierto después de obtener los últimos resultados
