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

Ruby on rails 如何在使用db.collection.insert()时动态切换MongoDB数据库?,ruby-on-rails,mongodb,mongoid,mongo-shell,mongoid4,Ruby On Rails,Mongodb,Mongoid,Mongo Shell,Mongoid4,我有一个多域Rails 4应用程序,其中http请求的request.domain决定了我向给定访问者公开的功能 我的应用程序中的每个域都应该由自己的MongoDB数据库提供服务。例如,domain1.com由db\u为\u domain\u 1提供服务,等等 我可以在报纸上读到 使我能够动态切换数据库 但是,当我绕过Mongoid并使用MongoShell方法时,如何保持持久性呢?不过,我仍然会在我的应用程序中这样做 答案可能在后面,但我不明白。那么,如何在此操作之前/期间切换数据库 MyMo

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

我的应用程序中的每个域都应该由自己的MongoDB数据库提供服务。例如,domain1.comdb\u为\u domain\u 1提供服务,等等

我可以在报纸上读到

使我能够动态切换数据库

但是,当我绕过Mongoid并使用MongoShell方法时,如何保持持久性呢?不过,我仍然会在我的应用程序中这样做

答案可能在后面,但我不明白。那么,如何在此操作之前/期间切换数据库

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

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

mongo db_for_domain_1:<port>/<dbName>
mongo db\u用于\u域\u 1:/
然后

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

有关用户名和密码选项,请参见
mongo--help

谢谢@SteveTarver。我很高兴可以切换数据库。但我不太确定如何解释这一行:
mongodb\u for\u domain\u 1://
mongo
是Ruby方法吗?
db\u for\u domain\u 1://
是键、值参数吗?在这种情况下,我理解参数的值部分(例如可以是端口
27017
),但我不理解参数的关键部分。哦,对不起,不,我想从应用程序内部连接。我唯一想回避的是Mongoid(因为我使用的是MongoShell方法)。所以我需要一些可以工作的东西,比如从控制器。对不起,没有rails或Mongoid经验,无法提供帮助。祝你好运,听起来是个有趣的挑战。你在数据库中使用相同的模型吗?是的,我使用!我给我们介绍了完全相同的模型。关于“…我如何保持持久性…”:ODM无法知道在该框架之外进行的操作。当您通过mongoshell命令插入文档时,通过Mongoid触发对该文档的读取以将其加载到持久层。
db.<collectionName>.insert({doc})