我收到了这个错误信息:
已弃用:函数Mongo::setSlaveOkay()已弃用
在PHP手册中,它说:
MongoCollection: setSlaveOkay
(PECL mongo>=1.1.0)
MongoCollection::setSlaveOkay -更改此设置的slaveOkay收集
我找不到任何关于它被弃用的提及。
我的PHP版本是5.3.10,MongoDB版本是1.3.5.
正如其他答案所述,setSlaveOkay
已被弃用,而支持完整的读取首选项(http://derickrethans.nl/readpreferences.html)。这是引入MongoClient
类时所做的更改(http://derickrethans.nl/mongoclient.html)。
如果您查看PHP手册页(http://www.php.net/manual/en/mongocollection.setslaveokay.php)的底部,您将看到一个更改日志部分,其中提到:
使用时会发出E_DEPRECATED
下面的"See Also"部分提供了替代它的链接,阅读偏好。
作为备份Hannes (https://groups.google.com/forum/?fromgroups=#!topic/mongodb-user/CAWuND9niLo),其中一个维护者提到:
我们想让人们知道,首选的方式是……]将在即将到来的1.3.0版本中进行更改(计划"很快")。
是的,从现在开始你应该使用read preferences
'slaveOk'已被更可配置的ReadPreferences功能所取代。
下面是PHP ReadReferences的介绍:
http://php.net/manual/en/mongo.readpreferences.phpMongoDB 2.2和1.3.0版本的驱动程序增加了对read的支持首选项,它允许控制如何将查询定向到复制集环境中的单实例。阅读偏好可能是在每个连接、每个数据库或每个集合上指定的基础上。在更高级别定义的首选项将被继承(例如,MongoCollection将继承在
读取首选项由模式和标签组合指定集。模式决定mongod实例的优先级,而标签集指定符合条件的单个实例的标准。
HTH - Rob
这个函数的PHP变更日志
1.2.11在使用时抛出E_DEPRECATED