(PECL mongo >=1.2.11)

MongoCursor::awaitDataSets whether this cursor will wait for a while for a tailable cursor to return more data


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

This method is to be used with tailable cursors. If we are at the end of the data, block for a while rather than returning no data. After a timeout period, we do return as normal.



If the cursor should wait for more data to become available.


Returns this cursor.

エラー / 例外

Throws MongoCursorException if this cursor has started iterating.

例1 MongoCursor::awaitData() example

In this example we tail the "oplog" and instead of sleeping during every iteration, we set the MongoCursor::awaitData() option. MongoCursor::hasNext() will now block until there is more data available.

= new MongoClient'mongodb://localhost:13000', array( 'replSet' => 'seta' ) );
$c $m->local->selectCollection'' );
$cursor $c->find( array( 'ns' => 'demo.article''op' => 'i' ) );
$cursor->tailabletrue );
$cursor->awaitDatatrue );

while (
true) {
    if (!
$cursor->hasNext()) {
// we've read all the results, exit
if ($cursor->dead()) {
    } else {
var_dump$cursor->getNext() );


MongoDB core docs on » tailable cursors.

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top