MongoDB 数据建模
MongoDB 数据建模
MongoDB中的数据具有灵活的模式。文档位于同一集合中。它们不需要具有相同的字段集或结构,集合文档中的公共字段可能包含不同类型的数据。
在MongoDB中设计模式时的一些注意事项
根据用户需求设计模式。
如果要一起使用对象,请将它们合并到一个文档中。否则将它们分开(但确保不需要连接)。
复制数据(但有限),因为磁盘空间比计算时间便宜。
写入时加入,而不是读取时加入。
针对最常见的用例优化模式。
在架构中执行复杂聚合。
例子
假设客户端需要为其博客/网站设计数据库,并了解RDBMS和MongoDB模式设计之间的差异。网站有以下要求。
每个帖子都有唯一的标题、描述和URL。
每个帖子可以有一个或多个标签。
每篇文章都有其出版商的名字和喜欢的总数。
每个帖子都有用户给出的评论以及他们的名字、消息、数据时间和喜好。
在每个帖子上,可以有零个或多个评论。
在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中,数据将只显示在一个集合中。