MongoDB 介绍
约 1337 字大约 4 分钟
2025-03-15
一、简介
MongoDB 是一个流行的开源文档型数据库,它使用类似 JSON 的文档模型存储数据,这使得数据存储变得非常灵活。
MongoDB 是一个基于文档的 NoSQL 数据库,由 MongoDB Inc. 开发。
MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能
二、特点
MongoDB 的一些关键特点:
- 文档导向:MongoDB 存储 BSON(二进制 JSON)文档,这些文档可以包含复杂的数据结构,如数组和嵌套对象。
- 高性能:MongoDB 提供了高性能的数据持久化和查询能力,特别是对于写入密集型的应用。
- 水平扩展:通过分片(sharding)技术,MongoDB 可以在多个服务器之间分布数据,实现水平扩展。
- 高可用性:MongoDB 支持副本集(replica sets),提供数据的自动故障转移和数据冗余。
- 灵活的聚合框架:MongoDB 提供了一个强大的聚合框架,允许执行复杂的数据处理和聚合操作。
- 丰富的查询语言:MongoDB 的查询语言(MQL)支持丰富的查询操作,包括文本搜索、地理位置查询等。
- 存储过程:MongoDB 支持在数据库内部执行 JavaScript 代码,允许定义和执行复杂的数据处理逻辑。
- GridFS:对于存储大于 BSON 文档大小限制(16MB)的文件,MongoDB 提供了 GridFS,一种用于存储和检索大文件的规范。
- 安全性:MongoDB 提供了多层次的安全特性,包括认证、授权和加密。
- 驱动程序和工具:MongoDB 拥有广泛的驱动程序支持,适用于不同的编程语言,以及各种管理工具和可视化界面。
- 社区和生态系统:MongoDB 拥有一个活跃的开发者社区,提供了大量的教程、文档和第三方工具。
MongoDB 的这些特性使其成为一个非常灵活和功能丰富的数据库解决方案,尤其适合处理大量的半结构化或非结构化数据。
三、概念解析
不管我们学习什么数据库都应该学习其中的基础概念,在 MongoDB 中基本的概念是文档、集合、数据库,下面我们挨个介绍。
下表将帮助我们理解 MongoDB 中的一些概念:
SQL 术语/概念 | MongoDB 术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB 不支持 | |
primary key | primary key | 主键,MongoDB 自动将_id 字段设置为主键 |
四、完整术语列表
- 文档(Document):MongoDB 的基本数据单元,通常是一个 JSON-like 的结构,可以包含多种数据类型。
- 集合(Collection):类似于关系型数据库中的表,集合是一组文档的容器。在 MongoDB 中,一个集合中的文档不需要有一个固定的模式。
- 数据库(Database):包含一个或多个集合的 MongoDB 实例。
- BSON:Binary JSON 的缩写,是 MongoDB 用来存储和传输文档的二进制形式的 JSON。
- 索引(Index):用于优化查询性能的数据结构,可以基于集合中的一个或多个字段创建索引。
- 分片(Sharding):一种分布数据到多个服务器(称为分片)的方法,用于处理大数据集和高吞吐量应用。
- 副本集(Replica Set):一组维护相同数据集的 MongoDB 服务器,提供数据的冗余备份和高可用性。
- 主节点(Primary):副本集中负责处理所有写入操作的服务器。
- 从节点(Secondary):副本集中的服务器,用于读取数据和在主节点故障时接管为主节点。
- MongoDB Shell:MongoDB 提供的命令行界面,用于与 MongoDB 实例交互。
- 聚合框架(Aggregation Framework):用于执行复杂的数据处理和聚合操作的一系列操作。
- Map-Reduce:一种编程模型,用于处理大量数据集的并行计算。
- GridFS:用于存储和检索大于 BSON 文档大小限制的文件的规范。
- ObjectId:MongoDB 为每个文档自动生成的唯一标识符。
- CRUD 操作:创建(Create)、读取(Read)、更新(Update)、删除(Delete)操作。
- 事务(Transactions):从 MongoDB 4.0 开始支持,允许一组操作作为一个原子单元执行。
- 操作符(Operators):用于查询和更新文档的特殊字段。
- 连接(Join):MongoDB 允许在查询中使用
$lookup
操作符来实现类似 SQL 的连接操作。 - TTL(Time-To-Live):可以为集合中的某些字段设置 TTL,以自动删除旧数据。
- 存储引擎(Storage Engine):MongoDB 用于数据存储和管理的底层技术,如 WiredTiger 和 MongoDB 的旧存储引擎 MMAPv1。
- MongoDB Compass:MongoDB 的图形界面工具,用于可视化和管理 MongoDB 数据。
- MongoDB Atlas:MongoDB 提供的云服务,允许在云中托管 MongoDB 数据库。
五、常见的几个命令
- mongod: 启动 MongoDB 服务
- mongo: 连接 MongoDb 数据库
更新日志
2025/8/24 08:17
查看所有更新日志
e7112
-1于