如何实现多租户MongoDB

时间:2011-04-14 17:36:13

标签: mongodb multi-tenant

我希望实现一个MongoDB系统,该系统有3个主要集合(人员,调查,响应)和一些次要集合(查找等)。但是,系统将是多租户,因此我需要为每个租户提供一组集合。我的问题是我应该为每个租户分别使用DB,还是应该有一个db。使用单个数据库,我应该按如下方式命名我的集合:tenantname_people,tenantname_surveys等,还是有更好的方法来构建/命名我的集合?我喜欢单一数据库方法,因为那时我可以拥有租户集合,每个租户及其用户等的详细信息,这将有助于支持。我将有相当多的索引,我只关注命名空间的24k限制。 24k似乎很高,但这些东西可能会困扰你。

非常感谢任何有用的评论。感谢。

2 个答案:

答案 0 :(得分:3)

我建议每个租户都有单独的数据库。这也可以帮助您进行分片。如果要使用--nssize参数,可以增加命名空间限制。

答案 1 :(得分:0)

绝对是一个单独的数据库是合适的方式,因此您可以轻松应用复制并制作租户的冗余版本。当您想要扩展服务时,单个数据库会咬你

您需要做的是拥有一个租户ID和一个用户数据库,这是一个管理数据库,您可以获得用户和租户的信息。