第1章:MongoDB基础
1.1 NoSQL与MongoDB简介
1.1.1 NoSQL数据库发展历程
- 传统关系型数据库的局限性
- Web 2.0时代的数据存储需求
- NoSQL数据库的兴起
- MySQL与MongoDB的比较
- 实时web应用
- 分布式数据存储
- 大数据分析
- 数据采集与分析
1.1.2 文档型数据库概念
1.1.3 MongoDB的特点与优势
- 灵活的文档模型
db.users.insertMany([{name: "张三",age: 30,contacts: {email: "zhangsan@example.com",phone: "13800138000"}},{name: "李四",age: 25,hobbies: ["篮球", "编程"]}
])
- 高性能
- 丰富的查询语言
db.products.find({$and: [{price: {$gte: 100, $lte: 500}},{category: "电子产品"},{stock: {$gt: 0}}]
})
1.1.4 应用场景分析
- 实时分析系统
- 内容管理
- 物联网数据存储
- 移动应用后端
- 日志存储
1.2 安装与配置
1.2.1 多平台安装
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
brew tap mongodb/brew
brew install mongodb-community
1.2.2 配置文件详解
systemLog:destination: filepath: /var/log/mongodb/mongod.loglogAppend: truestorage:dbPath: /var/lib/mongodbjournal:enabled: truenet:port: 27017bindIp: 0.0.0.0security:authorization: enabled
1.3 基本概念
1.3.1 数据模型
- 数据库(Database)
- 集合(Collection)
- 文档(Document)
- 字段(Field)
- ObjectId
{_id: ObjectId("5f8d3a1c9d3b2a1b1c9d3b2a"), name: "产品名称",price: 99.99,tags: ["电子", "数码"],specs: {color: "black",size: "large"}
}
1.3.2 ObjectId详解
let id = ObjectId()
id.getTimestamp()
id.str
实践练习
- 安装MongoDB
- 配置基本连接
- 创建第一个数据库
- 插入不同结构的文档
- 体验动态模式的灵活性
学习总结
- 理解NoSQL与文档型数据库概念
- 掌握MongoDB安装与基本配置
- 了解数据模型的灵活性
- 认识MongoDB的应用场景
- 初步体验文档存储的优势