如何以编程方式获取Mongoid写入的当前数据库?

时间:2012-10-23 21:15:28

标签: ruby-on-rails mongodb mongoid mongodb-ruby mongoid3

我正在使用带有rails的Mongoid使用Mongoid.override_database(“database_name”)与多个数据库进行通信。如何以编程方式查找当前数据库?

会话中的Mongoid文档:http://mongoid.org/en/moped/docs/driver.html定义覆盖数据库的方法,但没有定义获取当前正在使用的数据库的方法。

5 个答案:

答案 0 :(得分:25)

知道了!

Mongoid.default_session.options[:database]

答案 1 :(得分:5)

获得此功能的新方法是

Mongoid::Config.clients["default"]["database"]

你也可以看看

Mongoid::Config.clients

看看还有什么可用。

答案 2 :(得分:4)

如果您想要覆盖数据库,则实际需要使用

Mongoid::Threaded.database_override

答案 3 :(得分:2)

运行Mongoid.default_session.options [:database]会出现default_session无效的错误。它现在是default_client。这非常有效。

在没有[:database]的情况下运行它以获取所有选项并查看数据库的完整配置。

Mongoid :: Config.clients [“default”] [“database”]假设您使用uri版本的mongoid.yml NOT 。在所有情况下你都会得到零。使用Mongoid :: Config.clients [“default”]获取当前数据库的完整配置,或使用Mongoid :: Config.clients [“default”] ['uri']为您提供完整的uri。

从最后一个端口号/后面的URI中选择数据库名称。可能有多个使用分片配置

答案 4 :(得分:1)

Mongoid版本7.0.5

Mongoid.client(:default).database