本文共 1411 字,大约阅读时间需要 4 分钟。
MongoDB 是一个开源的分布式文件存储数据库系统,基于 C++ 编写。它以文档存储方式著称,操作简便,支持“无模式”数据建模,能够存储复杂数据类型,是一款流行的文档类型数据库。在高负载场景下,MongoDB 天然支持水平扩展和高可用性,可以通过添加更多节点确保服务性能和可用性。它常用于替代传统关系型数据库或键/值存储系统,为 Web 应用提供高扩展、高可用、高性能的数据存储解决方案。
MongoDB 的存储结构与传统关系型数据库不同,主要由以下三个单元组成:
MongoDB 的数据记录以文档形式存储,这些文档在集合中聚集,数据库中存储一个或多个文档集合。
SQL | MongoDB |
---|---|
表(Table) | 集合(Collection) |
行(Row) | 文档(Document) |
列(Col) | 字段(Field) |
主键(Primary Key) | 对象 ID(Objectid) |
索引(Index) | 索引(Index) |
嵌套表(Embedded Table) | 嵌入式文档(Embedded Document) |
数组(Array) | 数组(Array) |
MongoDB 中的记录是一个 BSON 文档,由键值对组成,类似于 JSON 对象。字段的值可以是其他文档、数组或文档数组。文档的键是字符串,除了少数例外,键可以使用任意 UTF-8 字符。键不能含有空字符 \\0
,.
和 $
有特殊意义,以下划线 _
开头的键是保留的。
BSON 是 Binary 的简称,是 JSON 文档的二进制表示,支持将文档和数组嵌入到其他文档和数组中。与 JSON 相比,BSON 的遍历速度更快,但需要更多的存储空间。
MongoDB 集合存在于数据库中,没有固定的结构,是“无模式”的。可以往集合中插入不同格式和类型的数据,但通常情况下,插入的数据会有一定的关联性。集合名可以是满足以下条件的任意 UTF-8 字符串:
""
。\\0
。$
。数据库用于存储所有集合,而集合又用于存储所有文档。MongoDB 中可以创建多个数据库,每个数据库都有自己的集合和权限。
MongoDB 预留了几个特殊的数据库:
system.users
和 system.roles
。一般不建议用户直接操作这个数据库。config
数据库用于存储分片信息。转载地址:http://anffk.baihongyu.com/