(PECL mongo >=0.9.4)
MongoCursor::slaveOkay — このクエリをセカンダリ上で完了できるかどうかを設定する
このメソッドをコールすると、以下の条件を満たす場合にドライバが読み込みをセカンダリに回すようになります。
セカンダリへの自動ルーティングを使っていない場合でも、この関数を使わなければならないことに注意しましょう。 レプリカセットのセカンダリに直接接続したとしても、この関数をコールすべきです。 そうすることで、古いデータであることを承知の上で取得しているのだということを データベースに伝えることができます。コールしなければ、クエリを実行すると "not master" エラーが発生します。
このメソッドは、静的クラス変数 MongoCursor::$slaveOkay を上書きします。 また、 Mongo::setSlaveOkay() や MongoDB::setSlaveOkay()、 MongoCollection::setSlaveOkay() も上書きします。
okay
セカンダリに問い合わせることが可能かどうか。
このカーソルを返します。
このカーソルの反復処理が始まっている場合に MongoCursorException をスローします。
例1 MongoCursor::slaveOkay() の例
<?php
MongoCursor::$slaveOkay = false;
// セカンダリには問い合わせられません
$cursor = $collection->find();
// セカンダリに問い合わせることができます
$cursor = $collection->find()->slaveOkay();
MongoCursor::$slaveOkay = true;
// セカンダリに問い合わせることができます
$cursor = $collection->find();
// セカンダリには問い合わせられません
$cursor = $collection->find()->slaveOkay(false);
?>