database - Mongo:很多集合还是只有一个包含不同类型文档的大型集合?
问题描述
我正在设计一个新系统,允许用户创建他们想要的任何内容类型。我希望有很多内容类型(数千种)。我们将使用 mongoDB。哪种方法更好?
选项 1:大量集合,每种内容类型一个,每个集合中有一些文档。
选项 2:单个大型集合,存储不同类型的文档。(我将根据另一个集合控制每个文档具有哪些字段,该集合包含每种内容类型的定义)
我更倾向于第二种选择,为了使分片实现更简单,更有效,我走在正确的道路上吗?我应该考虑哪些额外的考虑因素?
解决方案
选项 1:大量集合,每种内容类型一个,每个集合中有一些文档。
除非您需要合并来自两个集合的文档,否则此选项有效。这意味着存储在不同集合中的文档是独立的。
选项 2:单个大型集合,存储不同类型的文档。(我将根据另一个集合控制每个文档具有哪些字段,该集合包含每种内容类型的定义)
这是可能的,但这不是推荐的解决方案。因为使用这种方法管理数据非常复杂。您总是需要有一个过滤条件来过滤文档类型。此外,如果您的收藏变得更大,您将不必要地查询其他文档。
推荐阅读
- php - 数据不显示
- sharepoint - How can i find the correct link for mapping a sharepoint as a network drive?
- python - 如何从包含 numpy 数组作为值的字典创建列表
- go - 我可以在 Go 中使用 unsafe.Pointer 将 *interface{} 转换为 *int
- css - 数据表搜索过滤器未与表的最右侧部分对齐
- javascript - 应用样式转换时会触发浏览器事件:scale(xValue, yValue)
- sql-server - 结果中某些记录的条件
- webrtc - 最新的 chrome 在 webrtc 环境下是否支持 vp9 svc?
- django - 覆盖其他 URL 的 Django 正则表达式 URL 模式
- html - GitHub 桌面存储库自动更改存储库名称