php - 配置 Symfony 使用多个 mongodb 数据库

标签 php mongodb symfony doctrine-odm

在我的应用程序中,我必须使用两个不同的 MongoDb 数据库。 所以我按照以下link中的说明进行操作.这是我的 app/config.yml 文件的一部分

doctrine_mongodb:
    default_database: music_store_database
    default_connection: conn1
    default_document_manager: dm1
    connections:
       conn1:
          server: mongodb://localhost:27017
          options:
             connect: true
             db: music_store_database
      conn2:
         server: mongodb://localhost:27017
         options:
            connect: true
            db: another_database
    document_managers:
        dm1:
            connection: conn1
            mappings:
                MyfirstBundle: ~
        dm2:
            connection: conn2
            mappings:
                MySecondBundle: ~  

现在,如果我执行 ./app/console cache:clear --env=prod 或其他任何操作,我会遇到此问题:

  [Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException]                                                                  

  The service "doctrine_mongodb.odm.conn1_connection" has a dependency on a non-         existent service "doctrine_mongodb.odm.conn1_configuration".
  The service "doctrine_mongodb.odm.conn1_connection" has a dependency on a non-          existent service "doctrine_mongodb.odm.conn1_configuration". 

我被困住了,没有找到任何解决方法。所以我想知道我做错了什么?配置 Symfony 使用两个 MongoDb 数据库的正确方法是什么

最佳答案

我建议您将dm1dm2更改为conn1conn2。我重现了你的问题,只是通过这个小小的改变,我就让它工作了。

doctrine_mongodb:
    default_database: music_store_database
    default_connection: conn1
    default_document_manager: conn1
    connections:
        conn1:
            server: mongodb://localhost:27017
            options:
                connect: true
                db: music_store_database
        conn2:
            server: mongodb://localhost:27017
            options:
                connect: true
                db: another_database
    document_managers:
        conn1:
            connection: conn1
            mappings:
                MyFirstBundle: ~
        conn2:
            connection: conn2
            mappings:
                MySecondBundle: ~

关于php - 配置 Symfony 使用多个 mongodb 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24906860/

相关文章:

mysql - 将主键更改为自动递增

symfony - 按翻译值排序的表单实体

php - 如何删除递归?

php - PHP解析/语法错误;以及如何解决它们

php - Zend Framework 2 路由子域到模块

node.js - Kubernetes node.js 容器无法连接到 MongoDB Atlas

dependency-injection - symfony 3 传递给 [some service]::__construct() 的参数 1 必须是给定的 Doctrine\ORM\EntityRepository [something] 实例的实例

php - Symfony JsonResponse 与序列化器

java - 如何通过 mongodb 模板在 Java 中使用 $redact 和聚合

mongodb - 如何使用findone从Mongodb集合返回数组