MongoCursor::slaveOkay
(PECL mongo >=0.9.4)
MongoCursor::slaveOkay — Sets whether this query can be done on a secondary [deprecated]
说明
This method is deprecated since version 1.5.0. Instead, please use MongoCursor::setReadPreference() and 读取首选项.
Calling this will make the driver route reads to secondaries if:
- You are using a replica set, and
- You created a MongoClient instance using the option "replicaSet" => "setName", and
- There is a healthy secondary that can be reached by the driver.
Note that you should use this function even if you do not use the automatic routing to secondaries. If you connect directly to a secondary in a replica set, you still need to call this function, which basically tells the database that you are aware that you might be getting older data and you're okay with that. If you do not call this, you'll get "not master" errors when you try to query.
This method will override the static class variable MongoCursor::$slaveOkay. It will also override Mongo::setSlaveOkay(), MongoDB::setSlaveOkay() and MongoCollection::setSlaveOkay().
参数
-
okay
-
If it is okay to query the secondary.
返回值
Returns this cursor.
错误/异常
Throws MongoCursorException if this cursor has started iterating.
范例
Example #1 MongoCursor::slaveOkay() example
<?php
MongoCursor::$slaveOkay = false;
// cannot query secondary
$cursor = $collection->find();
// can query secondary
$cursor = $collection->find()->slaveOkay();
MongoCursor::$slaveOkay = true;
// can query secondary
$cursor = $collection->find();
// cannot query secondary
$cursor = $collection->find()->slaveOkay(false);
?>
参见
- 读取首选项
- MongoCursor::setReadPreference() - Set the read preference for this query
- MongoCursor::getReadPreference() - Get the read preference for this query
更新日志
版本 | 说明 |
---|---|
1.5.0 | This method has been deprecated in favour of MongoCursor::setReadPreference() and 读取首选项. |