当前位置: 首页 > 科技观察

MongoDB的数据建模

时间:2023-03-12 03:58:54 科技观察

一对一关系:Embed,比如用户信息集合有一个Address字段,Address字段有省、市、县三个字段。建模如下:一对多关系:一篇文章有??多个评论,是一对多关系由于MongoDB对单个文档有16M的大小限制(高于v1.8),这个限制也应该包含在设计思维中。多对多关系:学生和课程是多对多关系。一个学生可以选择多门课程,一个课程可以有多个学生参加。多对多使用Linking,通过References连接两个集合。MongoDBReferences有两种类型:一种是ManualReferences,另一种是DBRefs。ManualReferences:(usercollection)(postcollection)红框内为ManualReferences。如果要查询一篇文章的作者信息,首先在post集合中找到那篇文章,然后在user集合中找到所有的用户信息。但是如果有这样一种场景:用户可以对图片、文章等各种资源进行评论,所有的评论都放在评论集合中。如果仅使用ManualReferences,则无法明确评论属于哪种类型的资源。图片?文章?.所以有DBRef。DBRef的形式:{$ref:,$id:,$db:}$ref:集合名;$id:引用的id;$db:数据库名,可选参数。可见DBRef的结构比ManualReferences复杂,占用空间大,但功能也很强大。如果要跨数据库连接,需要用到上面提到的评论收集例子中的DBRef。MongoDB提供了解析DBRef的函数。您不需要像手动引用那样手动编写两次查询。关于MongoDB的数据建模MongoDB官网也给出了一些建议。这些建议提供了一些参考。实际建模需要根据具体需求分析,经常对分析的数据进行哪些操作(排序、查找、修改)来选择Embed和Link。原文链接:http://www.cnblogs.com/alab/archive/2012/07/25/2608905.html【编辑推荐】MongoDB2.0正式版发布MongoDB2.0新特性一一:CompactCommand主流综合测评NoSQL数据库MongoDB教你用MySQL学MongoDB。Windows环境下MongoDB搭建及简单操作