mongodb与mysql命令对比 传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,
MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。
MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。
MongoDB设计模式的一些考虑
可根据用户要求设计架构。
合并对象为一个文件,如果要将它们放在一起。否则分开它们(但确保不需要连接)。
重复数据(有限),因为磁盘空间便宜(相比计算时间)。
不需要连接写入,而是读。
优化架构是最常见的用例。
在模式上做复杂的聚集。
例子
假设一个客户端需要一个数据库设计,设计一个博客网站,来看看 RDBMS 和 MongoDB 架构设计之间的差异。网站有以下要求。
每一个文章内容都有独特的标题,描述和网址。
每一个文章内容可以有一个或多个标签。
每一个文章内容都有其出版商总数喜欢的名称。
每一个文章内容有评论以及名字,消息,时间和喜欢的用户。
对于每个文章,可以是零个或多个评论。
上述要求在RDBMS模式设计,将有至少三个表。
RDBMS Schema Design
在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数据只是从一个集合。