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

时间:2015-10-14 11:53:34

标签: ruby-on-rails mongodb mongoid mongo-shell mongoid4

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

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

我可以在MongoDB docs on runtime persistence中阅读

Mongoid.override_database("db_for_#{request.domain}")

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

但是当我绕过Mongoid并使用mongo Shell方法db.collection.insert()时,如何保持持久性呢?我仍然会在我的申请中做到这一点。

答案可能在MongoDB docs on collection access,但我不明白。那么如何在此操作之前/期间切换数据库?:

MyModel.collection.insert({field_1: "Value 1", field_2: "Value 2"})

1 个答案:

答案 0 :(得分:3)

如果我理解你的问题:你有一个应用程序连接到不同服务器上的不同mongodbs,但是想使用mongo shell连接到应用程序之外的数据库?如果为true,则使用

通过shell连接到所需的数据库
mongo db_for_domain_1:<port>/<dbName>

然后

db.<collectionName>.insert({doc})

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