我的目标是连接我的 heroku/mongolab 数据库,但我不断收到此错误:
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] /cdn-cgi/l/email-protection:xxxxx/heroku_app########
我知道 uri 是正确的并且包含用户名和密码,那么为什么会出现错误呢?此外,错误发生在 insert() 行,而不是我进行身份验证的行。
好吧,事实证明该网址将我连接到heroku_app########
数据库,但我然后尝试访问名为test
所以显然我没有经过身份验证。如果 Mongo 返回一个错误,指出我已登录但未登录到正确的数据库,那就太好了。那好吧。
我对uri的格式没有足够的重视,它是
mongodb://username:password@host:port/database
事实证明,数据库部分......非常重要。
(实际上,我在编写测试时找到了这个问题的答案,但如果这个答案存在,它可能会为我节省大量令人尴尬的时间,所以我再次编写它并自己回答。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)