0
点赞
收藏
分享

微信扫一扫

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
|--... ...

企业开发如何选择

  • 关系型数据库和非关系型数据库之间并不是​​替代​​​关系,而是​​互补​​关系,所以在企业开发中大部分情况是结合在一起使用
  • 对于数据模型比较简单、数据性能要求较高、数据灵活性较强的数据,我们存储到非关系型数据库中,相反则存储到关系型数据库中




举报

相关推荐

0 条评论