DoctrineMongoDBBundle:指定文档管理器的读取首选项
我正在连接一个仅配置为读取的远程数据库。 如果我使用:DoctrineMongoDBBundle:指定文档管理器的读取首选项,mongodb,symfony,doctrine-mongodb,Mongodb,Symfony,Doctrine Mongodb,我正在连接一个仅配置为读取的远程数据库。 如果我使用: $connection = new \MongoClient($server); $dbname = $connection->selectDB("db"); $dbname->setReadPreference(\MongoClient::RP_SECONDARY); 它工作正常,但如果我尝试: $dm = $this->getDocumentManager
$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();
我得到这个错误:
非主从式OK=false
我如何指定$dm的读取首选项,就像它在MongoClient中工作一样
提前感谢…找到了!
我们必须在config.yml文件中指定readPreference属性。
希望这能帮助其他人
conn2:
server: "%conn2_server%"
options:
connect: true
db: "%conn2_options_db%"
readPreference: secondary
最好使用:
readPreference: secondaryPreferred
或
而不是简单的主节点或次节点,因为如果主节点或次节点不能使用首选选项,您仍然可以从其他节点检索数据
readPreference: primaryPreferred