meteor:为每个用户使用不同的数据库

时间:2016-01-24 14:00:12

标签: mongodb meteor

我目前使用env变量为我的meteor app分配一个mongodb 当我启动流星实例时,“MONGO_URL”:“mongodb:// localhost:27017 / dbName”。

因此所有数据都被写入名为“dbName”的mongo数据库。 我正在寻找一种方法来登录时为每个客户单独设置dbName,以便将他们的数据分成不同的数据库。

2 个答案:

答案 0 :(得分:1)

这通常不受支持,因为这是在启动时定义的。但是,这个主题提供了一个可能的解决方案:

https://forums.meteor.com/t/switch-database-while-meteor-is-running/4361/6

var database = new MongoInternals.RemoteCollectionDriver("<mongo url>"); 

MyCollection = new Mongo.Collection("collection_name", { _driver: database });

这将允许您在mongo url中定义数据库名称,但需要相当多的额外工作来逐个客户重新定义您的集合。

答案 1 :(得分:0)

这是另一种让您的生活更轻松的方法:

  1. 在mysite.com上创建一个没有帐户的通用网站
  2. 当他们登录mysite.com时,找出他们实际所属的网站并将其重定向到customerName.mysite.com并将其登录在那里
  3. 为每个站点的不同mongo运行单独的Meteor实例
  4. nginx可能会帮助您解决上述问题。

      

    在提供B2B时,通常会运行单独的DB   溶液

    这是一个很大程度上取决于平台的意见问题。许多SaaS提供商会争论这一点。