我正在设计一个新系统,该系统将允许用户创建所需的任何内容类型。我希望有很多内容类型(数千个)。我们将使用mongoDB。哪种方法更好?
选项1:大量馆藏,每种内容类型一个,每个馆藏一些文档。
选项2:单个大集合,用于存储不同类型的文档。 (我将控制每个文档基于另一个集合的哪个字段,其中包含每种内容类型的定义)
我更倾向于第二种选择,为了使分片实现更简单,更有效,我走对了吗?我应该考虑哪些其他因素?
答案 0 :(得分:0)
选项1:大量收藏,每种内容类型一个,少数几个 每个集合中的文档。
该选项有效,除非您需要合并两个集合中的文档。这意味着存储在不同集合中的文档是独立的。
选项2:单个大型集合,用于存储以下内容的文档: 不同种类。 (我将控制每个文档所基于的字段 在另一个集合中,其中包含每个内容的定义 类型)
这是可能的,但这不是推荐的解决方案。因为使用这种方法管理数据非常复杂。您始终需要一个过滤条件来过滤文档类型。另外,如果您的收藏越来越大,则不必要查询其他文档。