(PECL mongo >=1.2.11)
MongoCursor::awaitData — Définit si le curseur doit attendre un curseur tailable pour retourner plus de données
Cette méthode est à utiliser avec les curseurs tailable. Lorsque nous sommes à la fin des données, cette méthode permet de choisir entre attendre d'autres données, ou retourner le fait qu'il n'y en a plus. Une fois le délai d'expiration écoulé, la méthode retournera normalement.
wait
Si le curseur doit attente plus de données ou non.
Retourne le curseur.
Lance une exception MongoCursorException si le curseur a commencé à être parcouru.
Exemple #1 Exemple avec MongoCursor::awaitData()
Dans cet exemple, nous affichons "oplog" et au lieu d'attendre entre chaque itération, nous définissons l'option MongoCursor::awaitData(). MongoCursor::hasNext() va maintenant attendre que d'autres données soient 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()) {
// nous avons lu tous les résultats, on sort
if ($cursor->dead()) {
break;
}
} else {
var_dump( $cursor->getNext() );
}
}
?>
La documentation MongoDB sur les » curseurs tailable.