MongoDB为BSON格式储存数据,没有固定的数据结构,但不代表无需设计数据模型。常见的MongoDB数据模型包含内嵌式结构和规范式结构

结构划分:

内嵌式结构:

一个文档中包含一个文档,被包含的文档数据被称为“内嵌文档”,包含内嵌文档的文档称为“外层文档”,如果是顶层结构,被称为“顶层文档”,适合一对一关系
对独立性高、更可能被查询到的数据作为外层文档,补充数据作为内嵌文档,数组元素过多时应避免使用内嵌文档

  1. #即为外层文档,又为顶层文档;name对应为内嵌文档
  2. {
  3. "Id": objectId("60ed3c06675ac3e39ba7 a962 "),
  4. "name": {
  5. "firstName": "charlie",
  6. "lastName": "gordon"
  7. },
  8. "balance": 100
  9. }
  10. #最外层为顶层文档,info对应为外层文档&内嵌文档,name对应为内嵌文档
  11. {
  12. "id": "1212121",
  13. "name": "dmbjz",
  14. "info": {
  15. "Id": objectId("60ed3c06675ac3e39ba7 a962 "),
  16. "name": {
  17. "firstName": "charlie",
  18. "lastName": "gordon"
  19. },
  20. "balance": 100
  21. }
  22. }

规范式结构:

如果同一个集合中,A文档的某个字段为B文档的主键值,则A文档符合规范式结构,适合一对多关系、读取频率远高于更新频率的数据,缺点是需要多次读取操作才能获取所有关联的数据

文档关系:

树形结构:

在同一个集合中大量的文档保存一个指向父节点或子节点的字段
捕获.PNG
树形结构一
捕获.PNG
树形结构二