MongoDB 数据建模

MongoDB中的数据结构很灵活。同一集合中的文档,数据结构不必相同。

MongoDB中设计数据结构时的一些注意事项

  • 根据用户需求设计数据结构。
  • 如果需要把对象组合在一起使用,例如:文章与评论,可将它们放到一个文档中。
  • 可以适当有数据冗余,因为与计算时间相比,磁盘空间更便宜。

例子

假设我们需要为一个博客网站设计数据库。博客网站有以下要求:

  • 每个帖子都有唯一的标题、描述和url。
  • 每个帖子可以有一个或多个标签。
  • 每一篇文章都有其发布者的名字和总点赞数。
  • 每个帖子都有用户评论,评论包括姓名、评论内容、评论时间和点赞数。
  • 每个帖子都可以有0条或更多评论。

在关系数据库中,针对上述需求的设计,将至少有三个表。

image

而在MongoDB中,将有一个集合post,结构如下

{
   _id: POST_ID
   title: TITLE_OF_POST, 
   description: POST_DESCRIPTION,
   by: POST_BY,
   url: URL_OF_POST,
   tags: [TAG1, TAG2, TAG3],
   likes: TOTAL_LIKES, 
   comments: [  
      {
         user:'COMMENT_BY',
         message: TEXT,
         dateCreated: DATE_TIME,
         like: LIKES 
      },
      {
         user:'COMMENT_BY',
         message: TEXT,
         dateCreated: DATE_TIME,
         like: LIKES
      }
   ]
}

因此,在显示数据时,在关系数据库中,需要连接三个表,在MongoDB中,只需读取一个集合中的数据。



浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载