mongodb中的数据建模
admin
2023-04-12 16:21:26
0

一对一的关系:Embed,比如用户信息集合有Address字段,Address字段有省、市、县三个字段。建模如下:

mongodb中的数据建模

mongodb中的数据建模

一对多关系:一篇文章有多条评论,为1对多关系

mongodb中的数据建模mongodb中的数据建模

由于MongoDB对单个文档(document)有大小限制16M(高于v1.8),设计时也要将这个限制纳入考虑中。

多对多关系:学生和课程是多对多的关系,一个学生可以选多门课程,一门课程有多名学生参与。

mongodb中的数据建模

多对多使用了连接(Linking),连接是通过引用(References)来连接两个集合。MongoDB References有两种:一种是 手动引用(Manual References),另一种是DBRefs。

Manual References:

mongodb中的数据建模(user集合)

mongodb中的数据建模(post集合)

红框地方就是Manual References,如果想查询一篇文章的作者信息,首先在post集合找出那篇文章,然后在user集合查找出用户的全部信息。但是假如有这么一个场 景:用户可以对图片,文章等各种资源评论,所有的评论都放在comment集合中,如果只是使用Manual References,就分不清楚评论到底是属于哪类资源了,图片?文章?。所以有了DBRef。

DBRef的形式:

{ $ref : , $id : , $db : }

$ref:集合名称;$id:引用的id;$db:数据库名称,可选参数。

可以看到DBRef的结构比Manual References的复杂,占用的空间大,但是功能也强大,如果要跨数据库连接,上面讲的评论集合的例子,都得需要使用DBRef,MongoDB提供 了函数来解析DBRef,不用像Manual References需要自己手动写两次查询。

mongodb中的数据建模

关于MongoDB的数据建模MongoDB官网也给出了一些建议。这些建议都是提供了一些参考,实际建模需要根据具体的需求来分析,分析数据经常会执行哪些操作(排序,查找,修改)来选择Embed和Link。


相关内容

热门资讯

民进党明天拟正式提名沈伯洋参选... 针对外传民进党将于13日正式拍板征召不分区民代沈伯洋参选台北市长,对决中国国民党现任市长蒋万安一事,...
内塔尼亚胡称中国支持伊朗制造导... ‍‍5月12日,外交部发言人郭嘉昆主持例行记者会。有外媒记者提问,以色列总理内塔尼亚胡在接受采访时表...
AI会取代哪些职业?多个AI意... 当前,人们日益担忧人工智能(AI)将影响就业市场。美国近期一项研究显示,多个人工智能模型在预测哪些职...
大疆Air 4无人机曝光,预估... IT之家 5 月 12 日消息,消息源 Igor Bogdanov 昨日(5 月 11 日)在 X ...
中核国电漳州能源原党委书记、董... 中核集团中核国电漳州能源有限公司原党委书记、董事长何辉涉嫌严重违纪违法,目前正接受中央纪委国家监委驻...
总投资1.85亿元,郑州市金水... 【大河财立方消息】 5月11日,金水区人民政府对金水区城市更新项目入库信息进行公示,公示期为2026...
特朗普访华期间是否会讨论台湾和... 澎湃新闻记者 聂舒翼 谢瑞强5月12日,外交部发言人郭嘉昆主持例行记者会。有记者就特朗普访华期间是否...
AI+教育,郑州航空港区成果亮... 【大河财立方 记者 程帅星】5月11日,由教育部、浙江省人民政府共同主办的2026世界数字教育大会在...
外交部:中方反对美国向中国台湾... 新华社北京5月12日电(记者万倩仪、冯歆然)外交部发言人郭嘉昆12日在例行记者会上就中美关系和台湾问...
外交部:亚太各国应擦亮眼睛,共... 新华社北京5月12日电(记者董雪、孙楠)外交部发言人郭嘉昆5月12日在例行记者会上回答相关问题时表示...