setSlaveOkay已经弃用?

3
我收到了这个错误信息:

已弃用:函数Mongo::setSlaveOkay()已弃用

PHP手册中,它说:

MongoCollection::setSlaveOkay

(PECL mongo >=1.1.0)

MongoCollection::setSlaveOkay — 更改此集合的slaveOkay设置

我没有找到任何关于它被弃用的提及。
我的PHP版本是5.3.10,MongoDB版本是1.3.5。
3个回答

3
正如其他答案所述,setSlaveOkay已被弃用,改为使用完整的读取首选项(http://derickrethans.nl/readpreferences.html)。这是在引入MongoClient类时进行的更改(http://derickrethans.nl/mongoclient.html)。
如果您查看PHP手册页面底部(http://www.php.net/manual/en/mongocollection.setslaveokay.php),您将看到一个更改日志部分,其中提到:

使用时会发出E_DEPRECATED警告。

下面的“参见”部分提供了替代它的链接,即读取首选项。
备份Hannes(https://groups.google.com/forum/?fromgroups=#!topic/mongodb-user/CAWuND9niLo),其中之一的维护者提到:

我们希望准备人们,在即将推出的1.3.0版本中,优选方式[...]将发生变化(计划“不久”)。

所以,是的,从现在开始您应该使用读取首选项。

2
"'slaveOk'已被替换为更可配置的ReadPreferences功能。"
以下是PHP ReadReferences的介绍:
"Mongodb 2.2和1.3.0版本的驱动程序增加了读取偏好设置的支持,允许控制在副本集环境中查询如何定向到mongod实例。读取偏好设置可以在每个连接、每个数据库或每个集合的基础上指定。在更高级别定义的首选项将被默认继承(例如,MongoCollection将继承在相应的MongoDB实例上定义的读取偏好设置)。"
"使用模式和标记集的组合来指定读取偏好设置。模式确定mongod实例的优先级,而标记集指定符合条件的mongod实例的标准。"

http://php.net/manual/en/mongo.readpreferences.php

HTH - Rob


$d->setReadPreference( Mongo::RP_PRIMARY_PREFERRED );$m->setReadPreference( Mongo::RP_SECONDARY_PREFERRED ); - JimmyDong

0

此函数的 PHP 变更日志

1.2.11 当使用时会发出 E_DEPRECATED。

因此,它已对 PECL Mongo 驱动程序过时。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接