我连接到仅配置为阅读的远程数据库。 如果我使用:
$connection = new \MongoClient($server);
$dbname = $connection->selectDB("db");
$dbname->setReadPreference(\MongoClient::RP_SECONDARY);
它工作正常,但如果我尝试:
$dm = $this->getDocumentManager(); //using remote db connection in config
$result = $dm->getRepository('Repository')->method();
我收到此错误:
not master and slaveOk = false
如何为$ dm指定Read Preference,与MongoClient的工作方式相同?
提前致谢...
答案 0 :(得分:1)
conn2:
server: "%conn2_server%"
options:
connect: true
db: "%conn2_options_db%"
readPreference: secondary
答案 1 :(得分:1)
最好使用:
readPreference: secondaryPreferred
或
readPreference: primaryPreferred
而不是简单的主要或次要,因为如果主要或次要使用首选选项不可用,您仍然可以从其他节点检索数据。