3

私の目標は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########:password@ds0xxxxx.mongolab.com:xxxxx/heroku_app########

uriが正しく、ユーザー名とパスワードが含まれていることを知っているのに、なぜエラーが発生するのでしょうか。また、エラーは、認証した行ではなく、insert()行で発生します。

4

1 に答える 1

4

ウェルプ、URLがheroku_app########データベースに接続していることがわかりましたが、呼び出されたデータベースにアクセスしようとしているtestので、明らかに認証されていません。私がログインしたが正しいデータベースにログインしていないことを指定するエラーがMongoから返されたのは良かったでしょう。しかたがない。

uriの形式に十分注意を払っていませんでした。

mongodb://username:password@host:port/database

データベースの部分は...かなり重要です。

(実際にテストを書いているときに答えを見つけましたが、この答えがあったら、恥ずかしいほどの時間を節約できたかもしれないので、もう一度書いて自分で答えます。)

于 2013-03-22T03:35:02.100 に答える