データベースクエリの結果を表すオブジェクトです。
MongoCursor には二段階の「ライフステージ」があります。 クエリ前とクエリ後です。カーソルを作成するにはコンストラクタをコールすることもできますが、 たいていは MongoCollection::find() をコールすることになります。 カーソルを作った時点ではまだデータベースに接続していません。 つまり、クエリ前の段階です。この段階では、クエリに何をしてほしいのかをさらに指定することができます。 取得数の制限や読み飛ばし、ソートなどのオプションを指定できるのです。
クライアントが結果を取得しようとする (直接的あるいは間接的に MongoCursor::next() をコールする) と、 そのカーソルはクエリ後の段階に進みます。
<?php
$cursor = $collection->find()->limit(10);
// まだデータベースへの問い合わせは行われていないので、検索オプションをさらに追加することができます
$cursor = $cursor->sort(array("a" => 1));
var_dump($cursor->getNext());
// ここでデータベースへの問い合わせが行われるので、これ以降はオプションを追加することはできません
// つまり、これは例外をスローします
$cursor->skip(4);
?>
クエリに "slaveOkay" フラグが設定されていると、スレーブ側での読み込みを許可します (スレーブは、デフォルトでは単なるバックアップ用であり読み込みはできません)。 MongoCursor::slaveOkay() で上書きすることができます。
データベースからのすべての応答に対するタイムアウトをミリ秒単位で設定します。 ずっと待ち続ける場合は -1 を指定します。 MongoCursor::timeout() で上書きすることができます。 これは MongoDB サーバに対する操作をキャンセルするわけではなく、 単にドライバ側で応答を待つのをやめて MongoCursorTimeoutException をスローするだけです。
MongoDB コアドキュメントの » カーソル を参照ください。