Coursera 笔记

Module 04 · NoSQL Databases in Cloud云端 NoSQL 数据库

Overview of MongoDBMongoDB 概述

Coursera ↗

学习目标

观看本视频后,你将能够:

  • 解释 MongoDB 是什么
  • 列出 MongoDB 的不同组件
  • 描述 MongoDB 的使用场景及优势

MongoDB 是什么?

MongoDB 是一种文档型(Document-Oriented)和NoSQL数据库,它的存储方式不同于传统的SQL 关系型数据库。

📌 传统 SQL 数据库 ⬇

  • 以**表(Table)**的形式存储数据
  • 每一行代表一个记录,每一列代表一个字段

📌 MongoDB ⬇

  • 以文档(Document)形式存储数据
  • 采用非关系型存储方式,无需固定的表结构
  • 文档类似于 JSON 对象或 Python 字典

📝 示例:学生信息文档

{
    "firstName": "John",
    "lastName": "Doe",
    "email": "johndoe@example.com",
    "studentId": 12345
}


MongoDB 的核心组件

MongoDB 主要由 数据库(Database)、集合(Collection) 和 文档(Document) 组成。

组件 🔹 作用 📌 示例 📊
数据库(Database) 存储所有数据的容器 Campus Management DB
集合(Collection) 逻辑分组,类似 SQL 中的表 Students、Employees
文档(Document) 具体数据记录,类似 SQL 的行 { "firstName": "John", "lastName": "Doe" }

📌 集合(Collection)

  • 相似类型的文档会被存储在同一个集合中
  • 例如:
    • 学生信息文档存储在 Students 集合中
    • 员工信息文档存储在 Employees 集合中

📌 文档(Document)

  • 由多个字段(Field)组成,类似于 JSON 对象
  • 每个字段都有唯一的名称,如 firstName, lastName, email, studentId
  • 支持多种数据类型,例如:
    • 日期(Date):ISODate 或 Unix 时间戳
    • 数字(Number):整数(Integer)或小数(Decimal)
    • 列表(List):支持存储多个值,包括不同类型的混合数据
    • 嵌套文档(Sub-document):支持在文档内存储另一个文档

MongoDB 的优势

1 灵活的数据存储方式

📌 传统的 SQL 数据库需要先设计模式(Schema),再创建表结构。
📌 MongoDB 采用动态模式(Schema-less),可以随时新增字段。

🚀 示例:添加一个新字段
如果想为学生记录添加出生日期(birthDate),在 SQL 数据库中需要 ALTER TABLE 语句,而在 MongoDB 中只需:

{
    "firstName": "John",
    "lastName": "Doe",
    "email": "johndoe@example.com",
    "studentId": 12345,
    "birthDate": "1998-05-20"
}

2 适用于结构化 & 非结构化数据

📌 MongoDB 允许存储 结构化 或 非结构化 数据,并能轻松整合不同格式的数据源。

📝 示例:适用于多国家业务
如果一个校园管理系统扩展到 美国,美国的地址使用 zip code 而非 postcode,MongoDB 允许灵活存储:

{
    "studentId": 12345,
    "address": {
        "street": "123 Main St",
        "city": "New York",
        "state": "NY",
        "zipCode": "10001"
    }
}

3 高可用性(High Availability)

MongoDB 通过复制集(Replica Set) 实现高可用性,确保数据不会因单点故障而丢失。
📌 复制集可在多个服务器间存储数据副本,提供故障恢复能力。
📌 主从复制架构(Primary-Secondary Replication) 确保服务不中断。


4 水平 & 垂直扩展(Scalability)

MongoDB 支持水平扩展(Sharding) 和 垂直扩展(Scaling Up)。

扩展方式 说明 适用场景
垂直扩展(Scaling Up) 增加更快的 CPU、更多的 RAM、更大的存储 适用于小规模数据增长
水平扩展(Sharding) 通过分片(Sharding)将数据分布到多个服务器 适用于大规模数据存储,如社交媒体、日志系统

💡 MongoDB 可用于本地部署(On-Premises)、混合云(Hybrid Cloud)或全托管云服务(Fully Managed Cloud Service)

  • IBM Cloud Databases for MongoDB
  • MongoDB Atlas(支持 AWS、Azure、Google Cloud)

总结

🎯 本视频要点回顾:

  • MongoDB 是 NoSQL 和文档型数据库,以 JSON 格式存储数据。
  • 支持多种数据类型,包括日期、数字、列表、子文档等。
  • 文档存储方式更灵活,无需预先定义表结构,可随时添加字段。
  • 数据按集合(Collection)组织,类似 SQL 数据库的表(Table)。
  • 适用于存储结构化 & 非结构化数据,适应多变的业务需求。
  • 提供高可用性(HA)和水平/垂直扩展能力,支持大规模数据存储。
  • MongoDB 可运行在本地、混合云或完全托管的云服务上。

🚀 MongoDB 作为现代 NoSQL 数据库的代表,广泛应用于大数据、实时分析、物联网(IoT)等领域!