1

我最近发现了 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() 列出所有可用的数据库,我会收到相同的错误“需要登录”

即使通过终端连接,连接也会建立,但会出现相同的“需要登录”警告。

三天以来我一直在尝试解决这个问题,但我找不到解决方案:(

希望可以有人帮帮我

4

1 回答 1

1

您的数据库的名称也定义在MONGOLAB_URI中(它的格式为cloudcontrol_<deployment_id>)。因此,您不必明确定义另一个数据库名称(也不能)。

您可以使用从 uri 中提取数据库名称

preg_match("#/([^/\?]+)(\?|$)#", $uri, $match);
database = $match[1];
于 2013-06-10T10:31:16.403 回答