Ruby Mongo Driver 2.0.0连接状态

时间:2015-08-23 11:19:21

标签: ruby mongodb

阅读文档,搜索堆栈,但我找不到一个非常简单的文档 功能:如何检查连接是否已建立?

建立数据库连接

db = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test')

我不时会忘记启动mongodb数据库,然后驱动程序尝试连接并且很好......并不是说连接本身有很多。

是否有某种.isConnected?方法或任何要找的东西 当前Mongo::Client实例的连接状态?

提前致谢

1 个答案:

答案 0 :(得分:4)

Mongo ruby​​驱动程序的1.x版本确实在connected?上公开了Mongo::Connection方法,但它已在v2中移动到live on Mongo::Server,但其含义有所改变。

以下是使用此方法的示例:

mongo = Mongo::Client.new('mongodb://localhost/mycollection')
#=> #<Mongo::Client:0x70279909414900 cluster=localhost:27017> 
mongo.cluster.servers.first.connected?
#=> true 

在Mongo ruby​​驱动程序的v2中,它会在尝试使用无效连接时引发异常,例如Mongo::Error::NoServerAvailable,基于有关超时的连接参数。出于简单检查连接是否已建立的目的,可能是:

mongo = Mongo::Client.new('mongodb://localhost/mycollection')
mongo.list_databases => # raise error or return an array