MongoDB为BSON格式储存数据,没有固定的数据结构,但不代表无需设计数据模型。常见的MongoDB数据模型包含内嵌式结构和规范式结构
结构划分:
内嵌式结构:
一个文档中包含一个文档,被包含的文档数据被称为“内嵌文档”,包含内嵌文档的文档称为“外层文档”,如果是顶层结构,被称为“顶层文档”,适合一对一关系
对独立性高、更可能被查询到的数据作为外层文档,补充数据作为内嵌文档,数组元素过多时应避免使用内嵌文档
#即为外层文档,又为顶层文档;name对应为内嵌文档{"Id": objectId("60ed3c06675ac3e39ba7 a962 "),"name": {"firstName": "charlie","lastName": "gordon"},"balance": 100}#最外层为顶层文档,info对应为外层文档&内嵌文档,name对应为内嵌文档{"id": "1212121","name": "dmbjz","info": {"Id": objectId("60ed3c06675ac3e39ba7 a962 "),"name": {"firstName": "charlie","lastName": "gordon"},"balance": 100}}
规范式结构:
如果同一个集合中,A文档的某个字段为B文档的主键值,则A文档符合规范式结构,适合一对多关系、读取频率远高于更新频率的数据,缺点是需要多次读取操作才能获取所有关联的数据
文档关系:
树形结构:
在同一个集合中大量的文档保存一个指向父节点或子节点的字段

树形结构一

树形结构二
