2017-10-09 137 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); 
});