Mongo:大量收藏还是只有一个包含不同类型文档的大型收藏?

时间:2019-05-02 21:30:09

标签: database mongodb database-design

我正在设计一个新系统,该系统将允许用户创建所需的任何内容类型。我希望有很多内容类型(数千个)。我们将使用mongoDB。哪种方法更好?

选项1:大量馆藏,每种内容类型一个,每个馆藏一些文档。

选项2:单个大集合,用于存储不同类型的文档。 (我将控制每个文档基于另一个集合的哪个字段,其中包含每种内容类型的定义)

我更倾向于第二种选择,为了使分片实现更简单,更有效,我走对了吗?我应该考虑哪些其他因素?

1 个答案:

答案 0 :(得分:0)

Data Modeling Concepts

  

选项1:大量收藏,每种内容类型一个,少数几个   每个集合中的文档。

该选项有效,除非您需要合并两个集合中的文档。这意味着存储在不同集合中的文档是独立的。

  

选项2:单个大型集合,用于存储以下内容的文档:   不同种类。 (我将控制每个文档所基于的字段   在另一个集合中,其中包含每个内容的定义   类型)

这是可能的,但这不是推荐的解决方案。因为使用这种方法管理数据非常复杂。您始终需要一个过滤条件来过滤文档类型。另外,如果您的收藏越来越大,则不必要查询其他文档。