我在使用Mongoid和rails一起使用Mongoid.override_database(“database_name”)与多个数据库通信。如何以编程方式查找当前数据库?如何以编程方式获取Mongoid正在写入的当前数据库?
会话中的Mongoid文档:http://mongoid.org/en/moped/docs/driver.html定义了重写数据库的方法,但没有定义获取当前数据库的方法。
我在使用Mongoid和rails一起使用Mongoid.override_database(“database_name”)与多个数据库通信。如何以编程方式查找当前数据库?如何以编程方式获取Mongoid正在写入的当前数据库?
会话中的Mongoid文档:http://mongoid.org/en/moped/docs/driver.html定义了重写数据库的方法,但没有定义获取当前数据库的方法。
Got it!
Mongoid.default_session.options[:database]
如果你想overrided数据库您真正需要使用
Mongoid::Threaded.database_override
新的方式来获得,这是
Mongoid::Config.clients["default"]["database"]
你也可以看看
Mongoid::Config.clients
看看还有什么是AV ailable。
您也可以使用符号。 'Mongoid :: Config.clients [:默认] [:数据库]' – Jason
正在运行Mongoid.default_session.options [:database]给出了一个default_session无效的错误。它现在是default_client。这很奇妙。
在没有[:database]的情况下运行它以获取所有选项并查看数据库的完整配置。
现在是通过符号:'Mongoid.default_session.options [:database]' – stef
更正了它。谢谢。 –
警告,这不是线程安全的! - 如果要在应用程序控制器的before_filter中切换数据库,则会返回应用程序中其他线程中使用的数据库名称。 – Hackeron