mongodb - DoctrineMongoDBBundle : Specify Read Preference to Document Manager

标签 mongodb symfony doctrine-mongodb

我正在连接到一个配置为只读的远程数据库。 如果我使用:

$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 的读取首选项,就像它对 MongoClient 的工作方式一样?

提前致谢...

最佳答案

找到了! 我们必须在 config.yml 文件中指定 readPreference 属性。 希望这可以帮助其他人...

conn2:
   server: "%conn2_server%"
     options:
      connect: true
      db: "%conn2_options_db%"
      readPreference: secondary

关于mongodb - DoctrineMongoDBBundle : Specify Read Preference to Document Manager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29041778/

相关文章:

php - 如何将数组的键放入 Symfony 的 ChoiceType 元素中

php - FOSUserBundle注册自定义

symfony - mongodb 中多个文档的原子更新

mongodb - 使用 $lookup 获取子文档

MongoDB : Remove last two characters from String

ruby - 对 Ancestry 类型数据库 : MongoDB, Redis 等的建议?

symfony - 在实体类中访问 Symfony2 全局参数

Mongodb:JSON 键中的美元符号 (.$.) 有什么作用?

mongodb - 无法使用 DoctrineMongoDBBundle 检索 @Collection 类型字段的值

mongodb - ZF2、学说-mongodb 和 PHP7