1

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

我在 main.php 中添加了 2 个 DB 组件:

'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请使用上面的连接提供一些示例查询。

4

2 回答 2

2

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

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

这是工作!

于 2012-10-25T06:32:59.547 回答
0

看看Yii 中的 Multiple db 支持

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

于 2012-10-23T00:38:23.040 回答