MongoDB - 每个租户不同的集合

时间:2017-09-27 04:46:06

标签: mongodb

我们有一个多租户应用程序,并计划在MongoDB中存储大量数据。目前,计划是在所有租户中使用相同的文档架构。我是Mongo的新手,但我想到将每个租户存储在自己的子集合中可能是有意义的。例如,database.collection.sub-collection将是:

  • mydb.archivedata.123456
  • mydb.archivedata.123457
  • mydb.archivedata.123458

以下是我认为的优点和缺点:

优点:

  • 因为索引会更小
  • 会更快
  • 通过像Robo 3T这样的数据查看数据时,查找文档会更容易。
  • 更容易删除租户。只需删除他们的藏品。

缺点:

  • 在做类似支持的事情时,很难在集合中查询。例如找到所有拥有此类数据的租户。听起来这是一个相当复杂的,如果不是不可能的连接写作。
  • 每当我想对索引进行更改时,我都必须将其应用于每个集合

我应该考虑一下吗?我应该为所有租户坚持使用一个系列吗?

1 个答案:

答案 0 :(得分:1)

不确定我是第一次错过了,但已经在What is the recommended approach towards multi-tenant databases in MongoDB?讨论了这个问题。

基于一些思考时间和帖子,使用单个数据库,并在每个文档中添加租户密钥。不是每个租户的收藏品。