14

レール付きのMongoidを使用して、Mongoid.override_database( "database_name")を使用して複数のデータベースと通信しています。プログラムで現在のデータベースを見つけるにはどうすればよいですか?

セッションに関するMongoidドキュメント:http://mongoid.org/en/moped/docs/driver.htmlデータベースをオーバーライドするメソッドを定義しますが、現在のデータベースを使用する方法は定義しません。

4

5 に答える 5

25

とった!

Mongoid.default_session.options[:database]
于 2012-10-23T21:30:13.123 に答える
8

これを取得する新しい方法は

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

ご覧になることもできます

Mongoid::Config.clients

他に何が利用できるかを確認します。

于 2016-09-22T00:38:23.440 に答える
4

オーバーライドされたデータベースが必要な場合は、実際に使用する必要があります

Mongoid::Threaded.database_override
于 2012-12-25T14:13:31.377 に答える
2

Mongoid.default_session.options [:database]を実行すると、default_sessionが無効であるというエラーが発生します。これでdefault_clientになります。それは素晴らしく機能します。

[:database]なしで実行すると、すべてのオプションが取得され、データベースの完全な構成が表示されます。

Mongoid :: Config.clients ["default"] ["database"]は、uriバージョンのmongoid.ymlを使用していないことを前提としています。すべての場合でnilになります。Mongoid :: Config.clients ["default"]を使用して現在のデータベースの完全な構成を取得するか、Mongoid :: Config.clients["default"]['uri']を使用して完全なURIのみを取得します。

最後のポート番号/の後のURIからデータベース名を選択します。シャード構成を使用している場合は、いくつか存在する可能性があります

于 2017-08-22T07:29:32.153 に答える
2

Mongoidバージョン7.0.5

Mongoid.client(:default).database
于 2020-08-06T14:38:18.393 に答える