Module 04 · NoSQL Databases in Cloud云端 NoSQL 数据库
Advantages of MongoDBMongoDB 的优势
学习目标
观看本视频后,你将能够:
- 识别 MongoDB 的核心优势
- 解释 MongoDB 如何满足不断变化的数据需求
MongoDB 的关键优势
1 灵活的模式(Schema)
MongoDB 采用灵活模式(Flexible Schema),支持存储不同结构的数据。
📌 示例:不同国家的地址格式
- 🇬🇧 英国地址:包含邮政编码(Postcode),但没有邮政区号(Zip Code)
- 🇺🇸 美国地址:包含邮政区号(Zip Code),但没有邮政编码(Postcode)

在 关系型数据库 中,每一行的字段必须一致,因此可能需要:
- 使用一个通用字段(但不够直观)
- 创建多个字段(导致数据冗余)
MongoDB 允许直接存储这些不同结构的数据,无需预定义固定的模式,例如:
{
"address": {
"street": "123 Main St",
"city": "New York",
"state": "NY",
"zipCode": "10001"
}
}
{
"address": {
"street": "45 Baker St",
"city": "London",
"postcode": "W1U 8EW"
}
}
💡 MongoDB 让数据存储更直观、灵活,且无须填充无意义字段!
2 代码优先(Code-First)开发
在关系型数据库(RDBMS)中,使用数据库前需要先定义表结构,然后才能读写数据。
📌 MongoDB 采用代码优先(Code-First)方式
- 无需预定义表结构
- 直接连接数据库即可写入数据
- 减少开发初期的复杂性
🚀 示例:直接写入数据(无需创建表):
{
"name": "Alice",
"age": 25,
"skills": ["Python", "MongoDB"]
}
📌 无需借助第三方 ORM(如 Hibernate)来管理数据访问!
3 进化式模式(Evolving Schema)
在现代应用中,数据需求会不断变化,例如:
📌 快递公司需要存储送货地址
🚚 2020 年疫情后,企业需要新增无接触配送字段。
- 传统 SQL 数据库:必须修改表结构(ALTER TABLE)
- MongoDB:可以直接新增字段,无需变更已有数据
{
"orderId": 12345,
"address": "456 Elm St",
"contactlessDelivery": true
}
💡 MongoDB 让数据模式可以随业务需求快速调整,无需复杂的数据库迁移!
4 强大的查询 & 分析能力
MongoDB 具备强大的查询功能,包括:
📌 MongoDB 查询语言(MQL)
- 提供丰富的操作符,支持复杂查询
- 语法类似于 JSON,易于理解
📌 聚合管道(Aggregation Pipeline)
- 类似 SQL 中的 GROUP BY 和 HAVING
- 适用于复杂数据分析
🚀 示例:按年级分组学生成绩,查找每学期最高分
db.students.aggregate([
{ "$group": { "_id": "$yearGroup", "topScore": { "$max": "$score" } } }
])
💡 MongoDB 可直接在服务器端进行数据分析,提高查询性能!
5 高可用性(High Availability)
MongoDB 通过复制集(Replica Set)实现高可用性(HA),即:
- 典型部署为 3 节点(Primary + 2 Secondaries)
- 主节点(Primary) 处理写入,副本节点(Secondary) 处理读取
- 自动故障转移(Failover),当主节点故障时,副本节点可自动接管
📌 示例:MongoDB 复制集架构
+---------------------+
| Primary Node | <-- 主要处理读写
+---------------------+
|
+---------------------+ +---------------------+
| Secondary Node 1 | | Secondary Node 2 | <-- 处理读请求 & 备份
+---------------------+ +---------------------+
💡 MongoDB 复制集可防止单点故障,提高系统稳定性!
总结
🎯 本视频要点回顾:
- MongoDB 具备灵活的模式(Flexible Schema),可存储不同结构的数据
- 采用代码优先(Code-First)方式,无需预先定义表结构
- 支持进化式模式(Evolving Schema),可快速适应业务需求变化
- 提供强大的查询 & 聚合能力,可直接在服务器端执行复杂分析
- 内置高可用性(High Availability),支持复制集(Replica Set)保障数据安全
🚀 MongoDB 适用于云端应用、大数据存储、实时分析、物联网(IoT)等场景,是现代数据库的强大选择!