在 MongoDB 中的数据有灵活的模式。在相同集合中文档并不需要有相同的一组字段或结构的公共字段的集合,文档可容纳不同类型的数据。
MongoDB设计模式的一些考虑
-
可根据用户要求设计架构。
-
合并对象为一个文件,如果要将它们放在一起。否则分开它们(但确保不需要连接)。
-
重复数据(有限),因为磁盘空间便宜(相比计算时间)。
-
不需要连接写入,而是读。
-
优化架构是最常见的用例。
-
在模式上做复杂的聚集。
例子
假设一个客户端需要一个数据库设计,设计一个博客网站,来看看 RDBMS 和 MongoDB 架构设计之间的差异。网站有以下要求。
-
每一个文章内容都有独特的标题,描述和网址。
-
每一个文章内容可以有一个或多个标签。
-
每一个文章内容都有其出版商总数喜欢的名称。
-
每一个文章内容有评论以及名字,消息,时间和喜欢的用户。
-
对于每个文章,可以是零个或多个评论。
上述要求在RDBMS模式设计,将有至少三个表。
在MongoDB 模式设计就文章一个集合,并具有以下结构:
{ _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 } ]}
因此,尽管RDBMS要显示数据,需要加入三个表,而在MongoDB数据只是从一个集合。