如何使用DoctrineMongoDBBundle处理Mongodb连接?

如何使用DoctrineMongoDBBundle处理Mongodb连接?,mongodb,doctrine-orm,symfony-2.4,Mongodb,Doctrine Orm,Symfony 2.4,我正在做一个symfony2项目,使用DoctrineMongoDBBundle来管理数据。 我需要处理两个或多个实例,但没有找到任何配置帮助 该文档解释了如何通过在config.yml文件中添加以下代码来配置一个默认连接 doctrine_mongodb: connections: default: server: mongodb://localhost:27017 options: {} default_data

我正在做一个symfony2项目,使用DoctrineMongoDBBundle来管理数据。 我需要处理两个或多个实例,但没有找到任何配置帮助

该文档解释了如何通过在config.yml文件中添加以下代码来配置一个默认连接

doctrine_mongodb:
    connections:
        default:
            server: mongodb://localhost:27017
            options: {}
    default_database: test_database
    document_managers:
        default:
            auto_mapping: true
为了给文档管理员打电话,我使用了以下代码:

 $dm = $this->get('doctrine_mongodb')->getManager();
它工作得很好,但我找不到如何配置更多连接以及如何使用文档管理器来处理。我认为它应该看起来像下面的源代码,但我找不到如何调用特定的连接

doctrine_mongodb:
    connections:
        default:
            server: mongodb://localhost:27017
            options: {}
        second:
            server: mongodb://localhost:27018
            options: {}
    default_database: test_database
    document_managers:
        default:
            auto_mapping: true
        second:
            auto_mapping: true
有什么想法吗


谢谢

此示例将在捆绑包的部分中介绍。每个连接和文档管理器都应该有一个唯一的名称,然后文档管理器配置应该引用相应的连接名称。我相信最后一点是您最初的示例中缺少的内容。引用捆绑文档:

doctrine_mongodb:
    default_database: hello_%kernel.environment%
    default_connection: conn2
    default_document_manager: dm2
    metadata_cache_driver: apc
    connections:
        conn1:
            server: mongodb://a.example.com:27017
        conn2:
            server: mongodb://b.example.com:27017
    document_managers:
        dm1:
            connection: conn1
            metadata_cache_driver: xcache
            mappings:
                AcmeDemoBundle: ~
        dm2:
            connection: conn2
            mappings:
                AcmeHelloBundle: ~
我建议您在连接和文档管理器中使用“default”以外的名称,以避免混淆。请注意,文档管理器名称现在将成为服务ID的一部分。根据上述配置,第二个连接和文档管理器将被别名为默认服务ID(请参阅:
default\u connection
default\u document\u manager
)。引用文档中的第二个示例,具体的服务ID为:

$conn1 = $container->get('doctrine_mongodb.odm.conn1_connection');
$conn2 = $container->get('doctrine_mongodb.odm.conn2_connection');
$dm1 = $container->get('doctrine_mongodb.odm.dm1_document_manager');
$dm2 = $container->get('doctrine_mongodb.odm.dm2_document_manager');