2013-08-21 84 views
2

Mongoid提供了幾個選項來更改使用哪個mongodb數據庫,方法是指定新的數據庫或將會話名稱更改爲已在mongoid.yml文件中定義的名稱。Mongoid動態更改主機

我想知道是否有辦法在運行應用程序時更改會話(即mongodb主機)。

因此,舉例來說,如果我開始了我的應用程序,它最初工作過的主要數據庫服務器1,有沒有辦法說使用樣品在服務器2

回答

2

下允許用戶添加會話動態

session_hash = {"database" => "testmongo", "hosts" => ["127.0.0.1:3003"], "username" => "testuser", "password" => "test_password"} 
Mongoid::Config.sessions[:mongo_dynamic] = session_hash 
1
Model.with(database: "other_db_name").create() 

我數據庫不知道你是否可以指定一個不同的服務器。但它值得一試

+0

這不工作,因爲它假定數據庫在mongoid.yml文件中定義的,而連接需要創建動態的,例如,如果我從數據庫中提取連接參數並需要將其添加到mongoid會話集合中。 – user2701762