MongoDB (四) MongoDB 数据模型
2015-08-30 14:25
483 查看
在 MongoDB 中的数据有灵活的模式。在相同集合中文档并不需要有相同的一组字段或结构的公共字段的集合,文档可容纳不同类型的数据。
合并对象为一个文件,如果要将它们放在一起。否则分开它们(但确保不需要连接)。
重复数据(有限),因为磁盘空间便宜(相比计算时间)。
不需要连接写入,而是读。
优化架构是最常见的用例。
在模式上做复杂的聚集。
每一个文章内容都有独特的标题,描述和网址。
每一个文章内容可以有一个或多个标签。
每一个文章内容都有其出版商总数喜欢的名称。
每一个文章内容有评论以及名字,消息,时间和喜欢的用户。
对于每个文章,可以是零个或多个评论。
上述要求在RDBMS模式设计,将有至少三个表。
在MongoDB 模式设计就文章一个集合,并具有以下结构:
因此,尽管RDBMS要显示数据,需要加入三个表,而在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数据只是从一个集合。
相关文章推荐
- MongoDB (三) MongoDB 安装
- MongoDB (二) MongoDB 优点
- MongoDB (一) MongoDB 介绍
- 8天学通MongoDB——第一天 基础入门
- mongodb常用操作命令
- MongoDB(2)-基本概念
- 请不要再用MongoDB了
- 用node.js+express.js+mongodb+jade开发一个完整的项目笔记(1)【页面即页面之间逻辑的制作】
- MongoDB的安全(五)
- mongodb的基本操作
- MongoDB(4)--MongoDB服务的启动
- MongoDB学习十--MongoDB的Replication Introduction
- mongodb笔记
- windows下安装mongoDB扩展
- MongoDB语法与现有关系型数据库SQL语法比较
- mongoDB 基本命令整理
- 在centOS中安装mongodb
- mongodb安装及简单操作
- MongoDB数据库 基础知识
- 搭建高可用mongodb集群(二)—— 副本集