MongoDB 介绍
什么是MongoDB
NoSQL(NoSQL=Not Only SQL),意即"不仅仅是SQL"。
MongoDB是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能最丰富,最像关系型数据库的。
MongoDB是由C++编写的,MongoDB语法类似js,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。
它和我们使用的关系型数据库最大的区别就是约束性,可以说文件型数据库几乎不存在约束性,理论上没有主外键约束,没有存储的数据类型约束等等
关系型数据库中有一个 "表" 的概念,有 "字段" 的概念,有 "数据条目" 的概念
MongoDB中也同样有以上的概念,但是名称发生了一些变化,严格意义上来说,两者的概念即为相似,但又有些出入
这是我们用关系型数据库做的一张很简单的User表
接下来我们再看一下MongoDB的数据结构:
User = [{ "name": "武大郎", "age": 18, "gender": "男" }, { "name": "孙悟空", "age": 100000, "gender": "男" }, { "name": "蔡文姬", "age": 16, "gender": "女" }]
这种类型是json,不是列表+字典
MongoDB的每个表(Collection)中存储的每条数据(Documents)都是一个一个的Json,Json中的每一个字段(Key)我们称之为:Field
就此我们引出了三个关键字,Collection也就是关系型数据库中"表"的概念,Documents就是"数据条目",Field就是"字段"
MySQL | MongoDB |
DB | DB |
Table | Colletions |
字段 | Field |
row | Documents |