如何在使用db.collection.insert()时动态切换MongoDB数据库?

Chr*_*sen 6 ruby-on-rails mongodb mongoid mongo-shell mongoid4

我有一个多域Rails 4应用程序,其中request.domainhttp请求确定我公开给定访问者的功能.

我的应用中的每个域都应该由自己的MongoDB数据库提供服务.例如domain1.comdb_for_domain_1等提供.

我可以在MongoDB文档中阅读有关运行时持久性的内容

Mongoid.override_database("db_for_#{request.domain}")
Run Code Online (Sandbox Code Playgroud)

使我能够动态切换数据库.

但是当我绕过Mongoid并使用mongo Shell方法db.collection.insert()时,如何保持持久性呢?我仍然会在我的应用程序中执行此操作.

答案可能在关于集合访问MongoDB文档中,但我不明白.那么如何在此操作之前/期间切换数据库?:

MyModel.collection.insert({field_1: "Value 1", field_2: "Value 2"})
Run Code Online (Sandbox Code Playgroud)

Ste*_*ver 4

如果我正确理解你的问题:你有一个应用程序连接到不同服务器上的不同 mongodb,但想使用 mongo shell 连接到应用程序外部的数据库?如果为 true,您将通过 shell 连接到所需的数据库

mongo db_for_domain_1:<port>/<dbName>
Run Code Online (Sandbox Code Playgroud)

进而

db.<collectionName>.insert({doc})
Run Code Online (Sandbox Code Playgroud)

请参阅mongo --help用户名和密码选项。