我最近发现了cloudcontrol并想写一个小的mongoDB应用程序来存储一些图像。我启用了免费的插件mongolab.free并按照文档设置了连接。
$credfile = file_get_contents($_ENV['CRED_FILE'], false);
$credentials = json_decode($credfile, true);
$uri = $credentials["MONGOLAB"]["MONGOLAB_URI"];
$m = new Mongo($uri);
$db = $m->selectDB('test');
问题是以下行不起作用,因为我“需要登录”
$db = $m->selectDB('test');
如果我尝试通过listDBs()列出所有可用的数据库,我会收到相同的错误“需要登录”
即使通过终端进行连接,连接也会建立相同的“需要登录”警告。
我一直试图解决这个问题,因为我现在已经三天了,但我找不到解决方案:(
希望有人可以帮助我
答案 0 :(得分:1)
您的数据库名称也在MONGOLAB_URI
中定义(其格式为cloudcontrol_<deployment_id>
)。因此,您不必明确定义另一个数据库名称(也不能)。
您可以使用
从uri中提取数据库名称preg_match("#/([^/\?]+)(\?|$)#", $uri, $match);
database = $match[1];