Docs 菜单
Docs 主页
/

MongoDB中的数据建模

数据建模是指对数据库中的数据以及相关实体之间的链接组织。

MongoDB具有灵活数据模型,允许您存储多态数据,这意味着:

  • 单个集合中的文档不必具有相同的字段集。

  • 字段的数据类型可能因集合中的文档而异。

MongoDB数据建模的核心原则是一起访问的数据应该一起存储。为此,您可以将相关数据嵌入对象和大量字段中。嵌入可以为应用程序提供更好的读取性能,并确保数据一致性。但是,您应根据应用程序的数据访问模式构建数据模型,以优化性能。

要学习;了解更多信息,请参阅MongoDB中数据建模的最佳实践。

请考虑以下利用文档模型灵活性的示例:

  • 贵公司跟踪每个员工在哪个部门工作。您可以将部门信息嵌入 employee集合中,以便在单个查询中返回相关信息。

  • 您的电子商务应用程序在产品页面上显示最近的五条评论。您可以将所有评论(包括较旧的评论)存储在单独的集合中,因为它们的访问频率不高。

  • 您的存储需要为产品目录创建单页应用程序。不同的产品具有不同的属性,因此可能具有不同的文档字段和字段类型。尽管存在这些差异,但您可以将所有产品存储在同一个集合中。

为了确保您的数据模型具有逻辑结构并实现最佳性能,请在生产规模使用数据库之前规划您的模式。要确定数据模型,请使用以下模式设计进程:

  1. 确定应用程序的工作负载。

  2. 映射集合中对象之间的关系。

  3. 应用设计模式。

MongoDB 灵活的模式允许您调整数据模型,而无需对根本的数据库进行重大更改。这样,您就可以在开发应用程序时迭代改进数据模型。

通过使用 MongoDB 灵活的模式进行开发,您可以:

  • 将数据模型直接映射到代码中存在的对象。

  • 仅将模式验证添加到需要更严格控制的文档部分和方面。

有关如何以迭代方式修改数据模型的示例,请参阅修改数据模型。

文档字段的值可以包含任何BSON数据类型,包括其他文档、数组和文档数组。这些对象可用于表示数据模型中不同类型的关系,包括:

  • 一对一关系:每个文档都与一个其他文档相关联。示例,一名患者只有一份记录。

  • 一对多关系:每个文档都与多个其他文档相关联。示例,Web应用程序用户可以有许多帖子或评论。

  • 多对多关系:每个文档都可以与多个其他文档关联,反之亦然。示例,一个学生可以注册多门课程,而每个课程可以有多名学生。

在MongoDB中,您可以通过嵌入或引用数据来对关系进行建模。通过选择最佳的数据链接方法,您可以针对应用程序的特定访问权限模式优化数据模型。

要学习;了解有关在MongoDB中进行关系建模的更多信息,请参阅:

在为MongoDB等文档数据库设计模式时,请考虑与关系数据库的以下重要区别:

关系数据库行为
文档数据库行为

在插入数据之前,您必须确定表的模式。虽然您可以更改关系数据库中的数据模型,但固定模式需要预先进行更多规划,包括考虑更改如何影响依赖引用。

随着应用程序需求的发展,您可以轻松地更改数据模型。

您经常需要连接来自多个不同表格的数据,以返回应用程序所需的数据。

灵活数据模型可让您根据应用程序的数据访问模式存储数据。示例,通过嵌入数据,您可以避免跨多个集合的复杂联接,同时提高性能并减少部署的工作负载。

  • MongoDB数据建模最佳实践

  • MongoDB Compass中的数据建模

后退

参考

获得技能徽章

免费掌握“关系到文档模型”!

了解详情

在此页面上