Yii mongodbsuite两个和更多的数据库连接

时间:2012-10-22 15:04:48

标签: mongodb yii

如何在Yii mongodbsuite中建立两个或多个数据库连接?

我在main.php中添加了2个数据库组件:

'components' => array(

    'mongodb' => array(
        'class'             => 'common\extensions\MongoDB',
        'connectionString'  => 'mongodb://localhost:27017/table1',
        'dbName'            => 'table1',
        'fsyncFlag'         => false,
        'persistentConnection' => 'x',
        'replicaSet'        => false,
        'safeFlag'          => true,
        'useCursor'         => false,
    ),

    'mongodb2' => array(
        'class'             => 'common\extensions\MongoDB',
        'connectionString'  => 'mongodb://localhost:27017/table2',
        'dbName'            => 'table2',
        'fsyncFlag'         => false,
        'persistentConnection' => 'x',
        'replicaSet'        => false,
        'safeFlag'          => true,
        'useCursor'         => false,
    ),

)

但是如何在查询中使用mongodb2(例如: - > findByAttributes())我不知道。 请使用上面的mongodb2连接提供一些示例查询。

2 个答案:

答案 0 :(得分:2)

我只是添加'mongodb2'=>数组到'components'=>数组并添加到扩展EMongoDocument的模型(例如:用户):

public function getMongoDBComponent() {return Yii::app()->mongodb2;}

这是工作!

答案 1 :(得分:0)

查看Multiple db support in Yii

基本上,您必须通过覆盖getDbConnection()方法来修改活动记录类。 (在给定的链接中,您有一个使用中间继承层的更好示例)