2013-03-22 60 views
3

我的目標時,即可登錄到我的Heroku/mongolab數據庫連接,但我不斷收到此錯誤:蒙戈:: OperationFailure - 需要使用from_uri

Mongo::OperationFailure at /mongotest/a/b 
: need to login 
file: networking.rb 
location: send_message_with_gle 
line: 89 

我正在使用的代碼是:

client = Mongo::MongoClient.from_uri(ENV['MONGOLAB_URI']) 
db = client.db('test') 
testcoll = db['testcoll'] 
testcoll.insert({:'_id' => "def", :'test' => "woop de doop"}) 
testcoll.find() 

ENV['MONGOLAB_URI']=mongodb://heroku_app########:[email protected]:xxxxx/heroku_app########

我知道URI是正確的,幷包含用戶名和密碼,爲什麼出錯?此外,該錯誤發生在insert()行上,而不是我認證的行。

回答

4

Welp,事實證明url連接我到heroku_app########數據庫,但我然後試圖訪問數據庫test顯然我沒有通過身份驗證。本來會很好的Mongo已經返回了一個錯誤,說明我已經登錄了,但沒有登錄到正確的數據庫。好吧。

我還沒有得到足夠的重視URI的格式,這是

mongodb://username:[email protected]:port/database 

數據庫的部分是...很重要的,事實證明。

(其實我發現寫測試這個問題的答案,同時,但如果這個答案已經存在可能有救了我的尷尬大量的時間,所以我又寫它,並回答它自己。)