推荐答案
MongoDB 的核心概念包括:
- 文档(Document):MongoDB 中的基本数据单元,类似于 JSON 格式的键值对集合。
- 集合(Collection):一组文档的集合,类似于关系型数据库中的表。
- 数据库(Database):多个集合的容器,每个数据库都有独立的权限和配置。
- 索引(Index):用于加速查询操作的数据结构,类似于关系型数据库中的索引。
- 分片(Sharding):将数据分布到多个服务器上的技术,用于处理大规模数据。
- 副本集(Replica Set):一组维护相同数据集的 MongoDB 实例,提供数据冗余和高可用性。
- 聚合管道(Aggregation Pipeline):用于处理数据并返回计算结果的框架,类似于 SQL 中的 GROUP BY 和 JOIN 操作。
- GridFS:用于存储和检索大文件的规范,将文件分割成小块存储在 MongoDB 中。
本题详细解读
文档(Document)
文档是 MongoDB 中最基本的数据单元,采用 BSON(Binary JSON)格式存储。每个文档都有一个唯一的 _id
字段作为主键。文档的结构是动态的,同一个集合中的文档可以有不同的字段。
集合(Collection)
集合是一组文档的容器,类似于关系型数据库中的表。集合没有固定的结构,文档可以有不同的字段和数据类型。集合的名称通常是小写的复数形式。
数据库(Database)
数据库是 MongoDB 中最高层次的数据容器,包含多个集合。每个数据库都有独立的权限和配置,可以通过 use
命令切换数据库。
索引(Index)
索引是用于加速查询操作的数据结构。MongoDB 支持多种类型的索引,如单字段索引、复合索引、文本索引、地理空间索引等。索引可以显著提高查询性能,但会增加写操作的开销。
分片(Sharding)
分片是 MongoDB 用于处理大规模数据的技术。通过分片,数据可以分布到多个服务器上,从而实现水平扩展。分片集群由分片、配置服务器和查询路由器(mongos)组成。
副本集(Replica Set)
副本集是一组维护相同数据集的 MongoDB 实例,通常由一个主节点和多个从节点组成。主节点负责处理写操作,从节点负责复制主节点的数据并提供读操作。副本集提供了数据冗余和高可用性。
聚合管道(Aggregation Pipeline)
聚合管道是 MongoDB 中用于处理数据的框架,支持多种操作符,如 $match
、$group
、$sort
等。通过聚合管道,可以对数据进行复杂的处理和计算,类似于 SQL 中的 GROUP BY 和 JOIN 操作。
GridFS
GridFS 是 MongoDB 用于存储和检索大文件的规范。它将文件分割成小块存储在 MongoDB 中,适合存储超过 BSON 文档大小限制(16MB)的文件。GridFS 使用两个集合来存储文件:fs.files
和 fs.chunks
。