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
|--... ...
企业开发如何选择
- 关系型数据库和非关系型数据库之间并不是
替代
关系,而是互补
关系,所以在企业开发中大部分情况是结合在一起使用 - 对于数据模型比较简单、数据性能要求较高、数据灵活性较强的数据,我们存储到非关系型数据库中,相反则存储到关系型数据库中
分类:
MongoDB4.X+新特性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具