2017-10-09 185 views
4

我正在使用MongoDB Atlas作为我的数据库。MongoError:不允许用户执行操作

我正在使用angular4与loopback作为API。

我的应用程序连接到我的数据库罚款。然而,当我试图获取数据,我得到这个错误(我已经取代了我和dbname DBNAME):如果我使用一个本地的MongoDB客户端或在AWS上一个MongoDB实例

MongoError: user is not allowed to do action [find] on [dbname.$cmd] 

查询工作正常。但是,使用地图集时,我得到这个错误。

+0

我有这个错误,我的问题是,当处理连接字符串时,我没有将数据库名称从“test”更改为我自己的数据库。 – Meier

+0

你解决了这个问题吗? –

回答

3

我自己也有同样的错误。

  • 如果您正在使用MongoDB的司机的NodeJS指MikaS职位需要做出的改变MongoClient.connect的V.3.0。 https://stackoverflow.com/a/47662979/8775223

  • 要将您的应用程序连接到Atlas MongoDB,请使用3.4驱动程序,例如。

    mongodb://<USERNAME>:<PASSWORD>@cluster0-shard-00-00- 
    rb899.mongodb.net:27017,cluster0-shard-00-01- 
    rb899.mongodb.net:27017,cluster0-shard-00-02- 
    rb899.mongodb.net:27017/<DBNAME>?ssl=true&replicaSet=Cluster0-shard- 
    0&authSource=admin 
    
+1

您为我节省了很多时间寻找解决方案。非常感谢你 – Gonzalo

0

如果您正在使用V3.0的MongoDB Node.js语言编写的,你应该使用新的API如下,并为司机3.4 MongoDB的阿特拉斯URI连接字符串和更早版本:

MongoClient.connect(uri, function(err, client) { 
    console.log("Connected successfully to server"); 

    const db = client.db(dbName); 
});