数据建模是指对数据库中的数据以及相关实体之间的链接组织。
MongoDB具有灵活数据模型,允许您存储多态数据,这意味着:
MongoDB数据建模的核心原则是一起访问的数据应该一起存储。为此,您可以将相关数据嵌入对象和大量字段中。嵌入可以为应用程序提供更好的读取性能,并确保数据一致性。但是,您应根据应用程序的数据访问模式构建数据模型,以优化性能。
要学习;了解更多信息,请参阅MongoDB中数据建模的最佳实践。
用例
请考虑以下利用文档模型灵活性的示例:
贵公司跟踪每个员工在哪个部门工作。您可以将部门信息嵌入
employee集合中,以便在单个查询中返回相关信息。您的电子商务应用程序在产品页面上显示最近的五条评论。您可以将所有评论(包括较旧的评论)存储在单独的集合中,因为它们的访问频率不高。
您的存储需要为产品目录创建单页应用程序。不同的产品具有不同的属性,因此可能具有不同的文档字段和字段类型。尽管存在这些差异,但您可以将所有产品存储在同一个集合中。
开始体验
为了确保您的数据模型具有逻辑结构并实现最佳性能,请在生产规模使用数据库之前规划您的模式。要确定数据模型,请使用以下模式设计进程:
详情
使用灵活的数据模型进行开发
MongoDB 灵活的模式允许您调整数据模型,而无需对根本的数据库进行重大更改。这样,您就可以在开发应用程序时迭代改进数据模型。
通过使用 MongoDB 灵活的模式进行开发,您可以:
将数据模型直接映射到代码中存在的对象。
仅将模式验证添加到需要更严格控制的文档部分和方面。
文档之间的关系
文档字段的值可以包含任何BSON数据类型,包括其他文档、数组和文档数组。这些对象可用于表示数据模型中不同类型的关系,包括:
一对一关系:每个文档都与一个其他文档相关联。示例,一名患者只有一份记录。
一对多关系:每个文档都与多个其他文档相关联。示例,Web应用程序用户可以有许多帖子或评论。
多对多关系:每个文档都可以与多个其他文档关联,反之亦然。示例,一个学生可以注册多门课程,而每个课程可以有多名学生。
在MongoDB中,您可以通过嵌入或引用数据来对关系进行建模。通过选择最佳的数据链接方法,您可以针对应用程序的特定访问权限模式优化数据模型。
要学习;了解有关在MongoDB中进行关系建模的更多信息,请参阅:
模式设计:关系数据库和文档数据库之间的区别
在为MongoDB等文档数据库设计模式时,请考虑与关系数据库的以下重要区别: