MongoCursor::awaitData

Sets whether this cursor will wait for a while for a tailable cursor to return more data

&reftitle.description; public `MongoCursor` `MongoCursor::awaitData` `bool` `wait` true

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.

&reftitle.parameters;

`wait`

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

&reftitle.returnvalues;

Returns this cursor.

&reftitle.errors;

Throws `MongoCursorException` if this cursor has started iterating.

&reftitle.examples;

### `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.

    <?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() );
        }
    }
    ?>

&reftitle.seealso;

MongoDB core docs on tailable cursors.

- `MongoCursor::tailable`