MongoDB 初识

75 阅读1分钟

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 约束。