我收到此错误消息:
已弃用:函数 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。
下面的“另见”部分提供了替代它的链接,阅读首选项。
作为维护者之一的备份 Hannes ( https://groups.google.com/forum/?fromgroups=#!topic/mongodb-user/CAWuND9niLo ) 提到:
我们想让人们做好准备,[...] 将在即将到来的 1.3.0 版本(计划“很快”)中改变。
所以是的,从现在开始你应该使用阅读偏好。
'slaveOk' 已被更可配置的 ReadPreferences 功能所取代。
下面是 PHP ReadReferences 的介绍:
驱动程序的 MongoDB 2.2 和 1.3.0 版本添加了对读取首选项的支持,这允许控制如何将查询定向到副本集环境中的 mongod 实例。可以在每个连接、每个数据库或每个集合的基础上指定读取首选项。默认情况下,将继承在更高级别定义的首选项(例如,MongoCollection 将继承在相应 MongoDB 实例上定义的读取首选项)。
读取首选项由模式和标签集的组合指定。模式决定了 mongod 实例的优先级,而标签集指定了符合条件的 mongod 实例的标准。
http://php.net/manual/en/mongo.readpreferences.php
HTH - 罗伯
此函数的 PHP 更改日志
1.2.11 使用时发出 E_DEPRECATED。
所以它不推荐用于 pecl mongo 驱动程序。