数据模型设计


进入MongoDB中文手册(4.2版本)目录

有效的数据模型可满足您的应用程序需求。文档结构考虑因素的关键是决定使用嵌入还是使用引用 。

1 嵌入式数据模型

使用MongoDB,您可以将相关数据嵌入单个结构或文档中。这些模式通常称为“非规范化”模型,并能利用MongoDB的丰富的文档。考虑下图:
在这里插入图片描述
嵌入式数据模型允许应用程序将相关信息存储在同一数据库记录中。结果,应用程序可能需要发出较少的查询和更新来完成常见的操作。
通常,在以下情况下使用嵌入式数据模型:

通常,嵌入可为读取操作提供更好的性能,以及在单个数据库操作中请求和检索相关数据的能力。嵌入式数据模型使在单个原子写入操作中更新相关数据成为可能。
要访问嵌入文档中的数据,请使用点符号 “进入”嵌入文档。有关访问数组和嵌入式文档中的数据的更多示例,请参见在数组中查询数据在嵌入式文档中查询数据

1.1 嵌入式数据模型和文件大小限制

MongoDB中的文档必须小于BSON文档的最大大小
对于批量二进制数据,请考虑GridFS

2 规范化设计模型

规范化的数据模型使用文档之间的引用来描述关系。
在这里插入图片描述
通常,使用规范化的数据模型:

  • 嵌入时将导致数据重复,但无法提供足够的读取性能优势,且读取性能的优势无法胜过重复的影响。
  • 代表更复杂的多对多关系。
  • 为大型分层数据集建模。

为了连接(join )集合,MongoDB提供了聚合阶段:

  • $lookup (从MongoDB 3.2开始可用)
  • $graphLookup (从MongoDB 3.4开始可用)

MongoDB还提供了可以跨集合联接数据的引用。
有关规范化数据模型的示例,请参阅 一对多关系模型的文档参考
有关各种树模型的示例,请参见树结构模型

3 进一步阅读

有关使用MongoDB进行数据建模的更多信息,请下载《 MongoDB应用程序现代化指南》。
下载内容包括以下资源:

  • 演示使用MongoDB进行数据建模的方法
  • 白皮书涵盖了从RDBMS数据模型迁移到MongoDB的最佳实践和注意事项
  • 参考MongoDB架构及其等效的RDBMS
  • 应用程序现代化记分卡

进入MongoDB中文手册(4.2版本)目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值