Meteor:多租户应用程序中每个租户一个数据库

Meteor:多租户应用程序中每个租户一个数据库,meteor,Meteor,大多数老博客/帖子建议在集合中的每个条目中使用租户id。并在每个查询中使用租户id来隔离Meteor应用程序中的租户 但是,现在是否可以在多租户应用程序中每个租户拥有一个MongoDB数据库,并根据租户id/子域在这些数据库之间进行Meteor切换?或者将租户id添加到每个条目是在Meteor中实现多租户的唯一方法?这是可能的,但没有记录-使用风险自负: var d = new MongoInternals.RemoteCollectionDriver("<mongo url>");

大多数老博客/帖子建议在集合中的每个条目中使用租户id。并在每个查询中使用租户id来隔离Meteor应用程序中的租户


但是,现在是否可以在多租户应用程序中每个租户拥有一个MongoDB数据库,并根据租户id/子域在这些数据库之间进行Meteor切换?或者将租户id添加到每个条目是在Meteor中实现多租户的唯一方法?

这是可能的,但没有记录-使用风险自负:

var d = new MongoInternals.RemoteCollectionDriver("<mongo url>");
C = new Mongo.Collection("<collection name>", { _driver: d });
var d=新的MongoInternals.RemoteCollectionDriver(“”);
C=新的Mongo.Collection(“,{u-driver:d});

为什么您希望每个租户拥有一个数据库?@merlinpatt在银行和医疗等领域,将客户数据混合在一个数据库中可能会很危险,只要您忘记按租户id进行筛选,客户a就会看到客户b的数据。数据库级别的隔离还允许您更轻松地移动客户数据,例如,在saas的入门级支付的客户可能都在小型数据库服务器上,而那些支付高级层的客户可能升级到大型数据库服务器。在服务器之间移动数据库比在两个数据库之间基于ID导入和导出数据容易得多。我同意移动数据可能会稍微容易一点,分层也会更容易。然而,不混合,因为你可能忘记过滤不是一个很好的理由。您也可以通过访问两个数据库而不是一个数据库的方式轻松地将代码弄乱。因此,我不认为将客户机分离到单独的数据库中会增加那么多安全性或操作简便性。我正在寻找相同的解决方案,如果您找到了任何解决方案,请告诉我。请解释给定的示例,什么是
C
,它是故意全局的吗?