MongoCursor::addOption
MongoCursor::batchSize
MongoCursor
PHP Manual

# MongoCursor::awaitData

(PECL mongo >=1.2.11)

MongoCursor::awaitData — 追尾可能なカーソルで、データがないときにしばらく待つかどうかを設定する

### 説明

public MongoCursor MongoCursor::awaitData ([ bool `$wait` = true ] )

このメソッドは追尾可能なカーソルに対して使います。 データの最期に到達したときに、空のデータを返すのではなくブロックしてデータを待つようになります。 タイムアウトに達すると、通常の場合と同様に空のデータを返します。

### パラメータ

`wait`

  カーソルに、さらにデータがやってくるまで待たせるかどうか。

### 返り値

このカーソルを返します。

### エラー / 例外

カーソルの反復処理が始まっている場合は MongoCursorException をスローします。

### 例

例1 MongoCursor::awaitData() の例

この例では "oplog" を追尾します。反復処理のたびにスリープするのではなく、 MongoCursor::awaitData() オプションを設定します。 MongoCursor::hasNext() はこれで、さらにデータがやってくるまでブロックするようになります。

`<?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()) {
// すべての結果を読んだので、終了します
if ($cursor->dead()) {
break;
}
} else {
var_dump( $cursor->getNext() );
}
}
?>`

### 参考

MongoDB コアドキュメントの » tailable cursors。

- MongoCursor::tailable() - このカーソルが、最後の結果を取得した後もオープンしたままにしておくかどうかを設定する

MongoCursor::addOption
MongoCursor::batchSize
MongoCursor
PHP Manual