我應該用什麼方法調用Mongo::Client
對象來檢查與數據庫服務器的連接是否處於活動狀態?在各種語言如何檢查與mongodb的連接是否處於活動狀態?
require 'mongo'
host = '127.0.0.1'
port = '27017'
client = Mongo::Client.new("mongodb://#{host}:#{port}")
我應該用什麼方法調用Mongo::Client
對象來檢查與數據庫服務器的連接是否處於活動狀態?在各種語言如何檢查與mongodb的連接是否處於活動狀態?
require 'mongo'
host = '127.0.0.1'
port = '27017'
client = Mongo::Client.new("mongodb://#{host}:#{port}")
由於MTJ建議,以檢查是否連接有效/活躍我想獲取數據庫列表如下:
require 'mongo'
host = '127.0.0.1'
port = '27017'
begin
client = Mongo::Client.new("mongodb://#{host}:#{port}")
client.database_names
rescue Mongo::Auth::Unauthorized, Mongo::Error => e
info_string = "Error #{e.class}: #{e.message}"
puts info_string
end
MongoClient實現爲「懶存根」,讓你不會立即得到一個錯誤,如果連接是不可能的。相反,當具體查詢通過該行時,會出現錯誤。
據我所知,確保連接發生的唯一方法是從服務器查詢一些數據。例如,在我們的項目中,我們只需在初始化時閱讀數據庫列表。
注:如查詢結果也可能是懶惰存根,確保實際閱讀結果在你的客戶;-)
定義'有效'?它會提出一個錯誤,如果它無法連接 – Anthony
我剛剛嘗試(mongo 2.2.x),它不會引發錯誤(好像它在後臺重試或某事) –