MongoDB介绍
- 由 C++语言编写的
- 是一个开源的 NoSQL 文档数据库,专为现代应用程序设计,提供高性能、高可用性和易扩展性。它采用 JSON-like(BSON)格式 存储数据,适合处理灵活、非结构化的数据模型。
MongoDB 的核心特点
(1) 文档型数据库(Document-Oriented)
数据存储格式:类似 JSON 的BSON(Binary JSON),支持嵌套结构
{
"_id": "123",
"name": "Alice",
"age": 30,
"address": {
"city": "Beijing",
"country": "China"
},
"hobbies": ["reading", "coding"]
}
灵活的模式(Schema-less):不同文档可以有不同的字段,无需预先定义表结构。
(2) 高性能
内存映射存储:利用内存加速查询。
索引支持:支持单字段、复合索引、全文索引等。
聚合管道(Aggregation Pipeline):复杂数据分析和转换。
(3) 高可用性与扩展性
副本集(Replica Set):自动故障转移,确保数据安全。
分片(Sharding):水平扩展,支持海量数据存储。
(4) 丰富的查询语言
支持 CRUD(增删改查)、聚合查询、地理空间查询 等。
示例查询:
// 查找年龄大于 25 的用户
db.users.find({ age: { $gt: 25 } });
// 聚合统计每个城市的用户数
db.users.aggregate([
{ $group: { _id: "$address.city", count: { $sum: 1 } } }
]);
MongoDB 的适用场景
(1) 内容管理系统(CMS)
存储文章、评论、用户资料等非结构化数据。 (2) 实时数据分析
日志分析、用户行为数据存储(如 IoT 设备数据)。
(3) 移动应用 & 社交媒体
用户动态、聊天记录、地理位置数据。
(4) 缓存层
替代 Redis 存储会话(Session)或临时数据。
(5) 微服务架构
每个微服务可独立使用 MongoDB,避免强 Schema 约束。