我有一個運行在Unicorn上的Sinatra應用程序,它使用Mongoid作爲它的模型。我有幾個結構相同但內容不同的Mongo數據庫,我爲每個用戶在他/她登錄時選擇正確的數據庫。我想知道Mongoid 3.0是否可以這樣做。在運行時在Mongoid 3.0中切換數據庫
2
A
回答
3
您可以查詢每次使用前with
操作:
Model.with(database: method_to_get_the_db_name).create
2
如果你想切換數據庫,使用Mongoid.override_database
,它是線程安全的。
Mongoid.override_database("client_db_name") # change the database
Mongoid.override_database(nil) # reset the database
實施例:
class ApplicationController < ActionController::Base
before_filter :switch_database
after_filter :reset_database
private
def switch_database
client_ref = params[:client_id]
Mongoid.override_database("my_db_name_#{client_ref}")
end
def reset_database
Mongoid.override_database(nil)
end
end
文檔可以發現here。
相關問題
- 1. 在運行時切換TG2中的數據庫
- 2. Laravel4如何在運行時切換架構數據庫名稱
- 3. 在運行時切換數據庫上下文
- 4. 在運行時替換SQLite數據庫
- 5. 在運行時切換MasterPageFile
- 6. 在運行時切換TraceSwitch
- 7. 在運行時用另一個數據庫替換數據庫。
- 8. 在Codeigniter Mongo類中切換數據庫
- 9. 在LinqToSql中切換數據庫
- 10. 在rails中切換數據庫階段
- 11. 在JBoss中動態切換數據庫
- 12. 在Mezzanine中切換數據庫後端
- 13. 在CakePHP3中動態切換數據庫
- 14. 切換數據庫
- 15. 在運行時切換數據模板 - 刷新問題
- 16. 「運行查詢時不支持USE語句在數據庫之間切換」
- 17. C#在運行時切換枚舉
- 18. 在運行時切換App.Config設置C#
- 19. 切換Process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden在運行時
- 20. 如何在運行時切換resx?
- 21. 在運行時切換db連接
- 22. Node.JS在運行時切換用戶
- 23. 運行時在線程中切換運行方法
- 24. 切換數據庫值
- 25. 在運行時創建數據庫
- 26. 在實時數據庫上運行mysqldump
- 27. 在運行時更改數據庫codeigniter
- 28. 在運行時設置NHibernate數據庫
- 29. 根據選定的某個值切換基於運行時間的數據庫
- 30. 在CakePHP中使用BindModel進行數據庫切換