文字

MongoCursor::awaitData

(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 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.

参数

wait

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

返回值

Returns this cursor.

错误/异常

Throws MongoCursorException if this cursor has started iterating.

范例

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

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

参见

MongoDB core docs on » tailable cursors.

  • MongoCursor::tailable() - Sets whether this cursor will be left open after fetching the last results
上一篇: 下一篇: