MongoDB开篇

什么是MongoDB

  • 存储文档(BSON)的非关系型数据库
  • MongoDB和MySQL一样都是数据库,都是存储数据的仓库
  • 不同的是MySQL是关系型数据库,而MongoDB是非关系型数据库

什么是非关系型数据库

  • 关系型数据库中,数据都是存储在表中的,对存储的内容有严格的要求,因为在创建表的时候我们就已经规定了表中有多少个字段,已经规定了每个字段将来要存储什么类型数据,已经规定了每个字段将来是否可以为空,是否必须唯一等等
  • 非关系型数据库中,没有表概念,所以存储数据更加灵活,因为不需要创建表,所以也没有规定有哪些字段,也没有规定每个字段数据类型,也没有规定每个字段将来是否可以为空,是否必须唯一等等
  • 关系型数据库由于操作的都是结构化的数据,所以我们需要使用结构化语言SQL来操作
  • 非关系型数据库由于数据没有严格的结构要求,所以无需使用SQL来操作

🐤例如在MySQL中

|--------------------------------------------------------|
|   name(varchar(255) not null)   |    age(int unique)   |
|--------------------------------------------------------|
我们可以把            'zs', 33         	  保存到表中
但是我们不能将         33, 'zs'           保存到表中
但我们不能能将         null, 33           保存到表中
但是我们不能将         'zs', 33,  '男'    保存到表中
但是我们不能再次将     'zs', 33           保存到表中

🐪例如在MongoDB中

我们可以把         {name: 'zs', age: 33};              保存到集合中
我们也可以把       {name: 33, age: 'zs'};              保存到集合中
我们也可以把       {name: null, age: 33};              保存到集合中
我们也可以把       {name: 'zs', age: 33, gender:'男'}; 保存到集合中
但是我们可以再次将 {name: 'zs', age: 33};              保存到集合中
  • 非关系型数据库可以看做是关系型数据库功能的阉割版本,通过减少用不到或很少用的功能,从而提升数据库的性能

MongoDB是如何存储文档的

  • MySQL中所有的数据都是存储在表中的,而MongoDB中所有的数据都是存储在集合中的

🐤MySQL

                |--行1
        |--表1--|--行2
数据库--|       |--行3
        |--表2
        |--... ...

🐪MongoDB

                  |--文档1
        |--集合1--|--文档2
数据库--|         |--文档3
        |--集合2
        |--... ...

企业开发如何选择

  • 关系型数据库和非关系型数据库之间并不是替代关系,而是互补关系,所以在企业开发中大部分情况是结合在一起使用
  • 对于数据模型比较简单、数据性能要求较高、数据灵活性较强的数据,我们存储到非关系型数据库中,相反则存储到关系型数据库中
posted @ 2020-08-02 21:31  BNTang  阅读(85)  评论(0编辑  收藏  举报