2016-08-02 15:01:59 2943次浏览 3条回答 0 悬赏 10 金钱

QQ截图20160802145546.png

在web.php中可以这样配置ip地址,然后登录机器,从而查询mongo,可现在是希望前台用户先登录,然后输入不同的ip地址登录不同的机器,查询,怎么做到呢?
我想的是把ip设置成全局变量,然后赋不同的值,不知道能不能做到,或者有什么更好的办法吗

补充于 2016-08-03 15:09

换句话说,配置文件能接收变量吗?

补充于 2016-08-05 14:36

知道怎么回事了,和mysql一样,配置两个库文件引入就行了,在控制器查询时指定是哪个IP

  • 回答于 2016-08-02 17:45 举报

    乱猜的, 配置多个 mongodb 的数据源. 然后根据规则使用不同的数据源应该可以吧.

    或者隐约记得 好像可以动态生成数据源的, 你看看手册吧.

  • 回答于 2016-08-03 10:52 举报

    mongodb是数据库,Model底层获取db的时候做个逻辑,$_SERVER里应该有IP

    1 条回复
    回复于 2016-08-03 17:13 回复

    大神,$_SERVER中确实有ip,可是我不知道在哪里可以截取更换,有相关的参考资料吗

  • 回答于 2016-10-19 12:18 举报

    请教个问题:
    Yii2 updateAll方法,如果一条数据存在包含多个Object的数组,$set object的值,只修改第一条,怎么让所有满足条件的object对应值都修改?

    {

    "_id" : ObjectId("57b3044030901c656b8b456a"),
    "props" : [ 
        {
            "id" : ObjectId("57a46bd830901cd0688b4569"),
            "ruleId" : ObjectId("57a46bcd30901cd0688b4568"),
            "name" : "like",
            "type" : "single"
        }, 
        {
            "id" : ObjectId("57a46bd234901cd0688b4278"),
            "ruleId" : ObjectId("57a46bcd30901cd0688b4568"),
            "name" : "like",
            "type" : "double"
        }, 
        {
            ... ...
        }
    ]
    

    }
    上面是我的数据库格式

    return self::updateAll(
        ['$set' => [
                'props.$.name' => 'name',
                'goods.$.type' => '123'
            ]
        ],
        [
            'props.ruleId' => new MongoId("57a46bcd30901cd0688b4568")
        ]
    );
    

    我要修改props满足条件的所有数据,但是只会更改第一条

您需要登录后才可以回答。登录 | 立即注册
米粒
助理

米粒

注册时间:2016-10-31
最后登录:2017-06-01
在线时长:0小时18分
  • 粉丝4
  • 金钱180
  • 威望0
  • 积分180

热门问题