如何使用具有凭据的ruby连接到mongo?

如何使用具有凭据的ruby连接到mongo?,ruby,mongodb,Ruby,Mongodb,我正在尝试连接到具有凭据的数据库。我在网上找不到任何有用的信息 require: 'mongo' begin db = Mongo::Connection.new(" IP ADDRESS " , PORT ).db("COLLECTION") db.authenticate("username","password") rescue StandardError => err abort("error") end C:/Ruby193/lib/ruby/gems

我正在尝试连接到具有凭据的数据库。我在网上找不到任何有用的信息

require: 'mongo'

begin
   db = Mongo::Connection.new(" IP ADDRESS " , PORT ).db("COLLECTION")
   db.authenticate("username","password")


rescue StandardError => err
    abort("error")
end
C:/Ruby193/lib/ruby/gems/1.9.1/gems/mongo-1.8.2/lib/mongo/networking.rb:306:“在套接字上接收消息时进行救援”:操作失败,出现以下异常:到达文件结尾mongo::ConnectionFailure

看起来有一个方法,可以将身份传递给构造函数,请尝试

auths = [{"db_name" => "COLLECTION", 
          "username" => YOUR_USERNAME, 
          "password" => YOUR_PASSWORD}]
Mongo::Connection.new(" IP ADDRESS " , PORT, auths: auths)

看看这是否有效

参考和

顺便说一句,这是gem和ruby的老版本。您是否考虑过可能的升级

Mongo目前的最新版本是2.4.3,选项现在更加透明,例如

Mongo::Client.new("IP_ADDRESS:PORT", user: USERNAME, password: PASSWORD, auth_mech: AUTHENTICATION_MECHANISM)

尽管根据您的评论,我不确定身份验证是否是您的问题

您认为gem和ruby版本与mongo客户端不兼容吗?@DarthSid不,我只是提一下,因为它看起来gem的最新版本是2.4.3,ruby当前的稳定版本是2.4.1.9.3,支持于年2月结束2015@engineersmknky 这两个版本都不起作用,错误消息相同。@DarthSid不确定身份验证是否是您的问题。当前版本为2.4.3,请在能够升级驱动程序版本时升级。这将删除您的文件结束到达错误消息。
Mongo::Client.new("IP_ADDRESS:PORT", user: USERNAME, password: PASSWORD, auth_mech: AUTHENTICATION_MECHANISM)