将RockMongo与MongoLab一起使用时,“执行失败:未授权”

时间:2013-12-07 04:26:58

标签: mongodb mlab

我无法使用RockMongo(v1.1.2)连接MongoLab,我做错了什么?

在我的MDb.php文件中

$MONGO["servers"][$i]["mongo_name"] = "MongoLab";
$MONGO["servers"][$i]["mongo_host"] = "ds053xx.mongolab.com";
$MONGO["servers"][$i]["mongo_port"] = "53818";
$MONGO["servers"][$i]["mongo_timeout"] = 0;
$MONGO["servers"][$i]["mongo_auth"] = true;

当我使用我的用户名,密码,db_name

登录时

它可以登录但我无法用它做任何事情 在屏幕的左侧显示

    Execute failed:unauthorized
    function (){ return db.getCollectionNames(); }

连接到本地数据库时没有问题。 并且还可以使用相同的URL,端口,用户名等。使用MongoVUE

2 个答案:

答案 0 :(得分:6)

这似乎不是你做错的事。看起来RockMongo需要管理员访问权限,因为它试图列出除您自己以外的数据库(例如管理员和本地数据库)的集合,这是MongoLab的Sandbox数据库无法实现的。

https://github.com/iwind/rockmongo/issues/35

答案 1 :(得分:0)

如果您只想访问自己的数据库,可以在rockmongo/apps/models/MDb.php listCollections(MongoDB $db)函数内更改以下第31行:

$names = self::exec($db, 'function () {
    return db.getCollectionNames();
 }');

$names = $db->getCollectionNames();