1

我的问题是我配置了两个这样的文档管理器:

doctrine_mongodb:
    document_managers:
        video:
            connection: video
            auto_mapping: true
        stats:
            connection: stats
            auto_mapping: true
    connections:
        video:
            server: mongodb://mongo0:27017,mongo1:27017
            options:
                connect: true
                replicaSet: true
                slaveOkay: true
        stats:
            server: mongodb://mongo2:27017,mongo3:27017
            options:
                connect: true
                replicaSet: true
                slaveOkay: true
    default_document_manager: video
    default_connection: video
    default_database: my_database

我的两个数据库名称相同,当我加载我的页面时,似乎一切正常(加载我的页面我只使用“视频”文档管理器)。但是,如果我之后使用“stats”文档管理器,symfony 似乎会发疯。

我将文档管理器作为这样的服务注入:

stats_service:
    class: %stats_service.class%
    arguments: 
      - @doctrine_mongodb.odm.stats_document_manager
video_service:
    class: %video_service.class%
    arguments: 
      - @doctrine_mongodb.odm.video_document_manager

我不知道为什么,但似乎每次我进行查询时,symfony 都会随机使用其中一个连接,而不是文档管理器注入的连接。

请帮忙!

谢谢

4

2 回答 2

1

好的。我终于解决了我的问题。我有两个具有相同名称的副本集,所有问题都来自那里。为了解决,我更改了其中一个副本集的名称和配置的属性“replicaSet”:

doctrine_mongodb:
    document_managers:
        video:
            connection: video
            auto_mapping: true
        stats:
            connection: stats
            auto_mapping: true
    connections:
        video:
            server: mongodb://mongo0:27017,mongo1:27017
            options:
                connect: true
                replicaSet: videoReplicaset
                slaveOkay: true
        stats:
            server: mongodb://mongo2:27017,mongo3:27017
            options:
                connect: true
                replicaSet: statsReplicaset
                slaveOkay: true
    default_document_manager: video
    default_connection: video
    default_database: my_database
于 2014-05-14T08:07:52.670 回答
-1

发现一篇有趣的文章推荐显式 em 设置here

于 2014-05-05T15:39:41.997 回答