返回主页 学习路径
MongoDB
灵活的 Schema · 高扩展性 · JSON 原生
MongoDB 是由 MongoDB Inc.(原 10gen)于 2009 年发布的开源文档数据库,是最流行的 NoSQL 数据库。MongoDB 使用类似 JSON 的 BSON 格式存储数据,支持灵活的 Schema,让数据模型可以随应用需求变化而演进。其水平扩展能力(分片集群)和丰富的查询语言使其成为现代应用开发的热门选择。Google、Adobe、eBay、阿里巴巴等众多科技公司都在使用 MongoDB。
NoSQL 之王 · 文档数据库
📅 诞生时间2009年 · MongoDB Inc.
🧩 类型文档型 · NoSQL
📊 数据格式BSON(二进制 JSON)
⚡性能
7/10
📦生态
9/10
🧠易用
9/10
🚀扩展性
8/10

📑 本文目录

📌 第一部分:MongoDB 概览与定位

1.1 定义与全称

MongoDB 是一个开源的、面向文档的 NoSQL 数据库系统,由 MongoDB Inc.(原 10gen)于 2009 年发布。MongoDB 使用 BSON(Binary JSON)格式存储数据,支持灵活的 Schema,让开发者可以快速迭代应用。

1.2 核心定位

MongoDB 的核心定位是 现代应用开发的通用数据库。它提供了:

1.3 主要应用领域

1.4 知名案例


📜 第二部分:MongoDB 的历史与发展演进

2.1 诞生背景(2009年)

MongoDB 由 Eliot Horowitz、Dwight Merriman 和 Kevin Ryan 于 2007 年开始开发,最初是为了解决传统关系数据库在 Web 应用中的扩展性问题。2009 年,MongoDB 正式开源发布,名字来源于英文单词 "humongous"(巨大的),寓意处理海量数据。

2.2 关键版本里程碑

2.3 设计哲学


⚙️ 第三部分:核心语法与特性

3.1 基本概念

3.2 常用命令

// 切换到数据库
use mydb

// 插入文档
db.users.insertOne({
    name: "Alice",
    age: 30,
    city: "Beijing",
    hobbies: ["reading", "coding"],
    created_at: new Date()
})

// 批量插入
db.users.insertMany([
    { name: "Bob", age: 25, city: "Shanghai" },
    { name: "Charlie", age: 35, city: "Beijing" }
])

// 查询文档
db.users.find({ city: "Beijing" })
db.users.find({ age: { $gt: 25 } })  // 大于 25
db.users.find({ name: "Alice" }).pretty()

// 更新文档
db.users.updateOne(
    { name: "Alice" },
    { $set: { age: 31 } }
)
db.users.updateMany(
    { city: "Beijing" },
    { $inc: { age: 1 } }  // 年龄 +1
)

// 删除文档
db.users.deleteOne({ name: "Alice" })
db.users.deleteMany({ age: { $lt: 20 } })

// 聚合查询
db.users.aggregate([
    { $group: { _id: "$city", avg_age: { $avg: "$age" } } },
    { $sort: { avg_age: -1 } }
])

// 创建索引
db.users.createIndex({ name: 1 })
db.users.createIndex({ city: 1, age: -1 })  // 复合索引

3.3 聚合管道

// 聚合管道示例
db.orders.aggregate([
    { $match: { status: "completed" } },
    { $group: {
        _id: "$customer_id",
        total: { $sum: "$amount" },
        count: { $sum: 1 }
    }},
    { $sort: { total: -1 } },
    { $limit: 10 }
])

3.4 索引类型

3.5 复制与高可用

3.6 分片集群


⚖️ 第四部分:MongoDB 与其他数据库对比

4.1 MongoDB vs MySQL

4.2 MongoDB vs PostgreSQL

4.3 MongoDB vs Redis

4.4 MongoDB vs Cassandra


🧠 第五部分:学习建议

1
基础入门

MongoDB 安装、基本概念、CRUD 操作

2
核心进阶

索引优化、聚合管道、查询优化

3
高级特性

副本集、分片集群、事务、安全

4
生态与集成

Mongoose(Node.js)、PyMongo(Python)、Spring Data MongoDB(Java)

推荐学习资源


🎯 总结升华

MongoDB 是 NoSQL 数据库的"标杆"。

它用 灵活的文档模型、强大的扩展能力、丰富的查询语言,重新定义了现代应用的数据库使用方式。MongoDB 不仅适合快速迭代的开发场景,也通过 ACID 事务支持了企业级应用的需求。

如果你的应用需要 快速迭代、灵活的数据模型、海量数据存储,MongoDB 是最佳选择之一。

"MongoDB 是开发者最喜欢的数据库之一。" 🍃

—— Stack Overflow 开发者调查

🔖 相关标签
#NoSQL #文档数据库 #JSON #水平扩展 #分片 #副本集 #聚合管道
📄 本文档为 MongoDB 完整白皮书 · 最后更新于 2026年06月28日