-
Notifications
You must be signed in to change notification settings - Fork 22
MongoDB
MongoDB是一个文档数据库,旨在简化开发和扩展
MongoDB提供数据库的社区版和企业版
MongoDB将数据记录存储为BSON文档。 BSON是JSON文档的二进制表示,但它包含的数据类型多于JSON。 有关BSON规范,请参阅bsonspec.org
官网入门
MongoDB中的记录是一个文档,它是由字段和值对组成的数据结构。 MongoDB文档类似于JSON对象。 字段的值可以包括其他文档,数组和文档数组
使用文档的好处是:
文档(即对象)对应于许多编程语言中的本机数据类型。
嵌入式文档和数组减少了对昂贵连接的需求。
动态模式支持流畅的多态性。
MongoDB文档由字段和值对组成,具有以下结构:
{
field1: value1,
field2: value2,
field3: value3,
...
fieldN: valueN
}
字段名称是字符串
文档对字段名称有以下限制:
字段名称_id
保留用作主键; 它的值在集合中必须是唯一的,是不可变的,并且可以是除数组之外的任何类型
字段名称不能包含空字符
顶级字段名称不能以美元符号($)字符开头
从MongoDB 3.6开始,服务器允许存储包含点(即.)和美元符号(即$)的字段名称
字段值限制:对于索引集合,索引字段的值具有最大索引键长度限制,更多详情
MongoDB使用点表示法来访问数组的元素并访问嵌入文档的字段
MongoDB提供高性能数据持久性。特别是,
对嵌入式数据模型的支持减少了数据库系统的I/O活动
索引支持更快的查询,并且可以包含来自嵌入式文档和数组的键
MongoDB支持丰富的查询语言以支持读写操作(CRUD)以及:
数据聚合
文本搜索和地理空间查询
MongoDB的复制工具称为副本集,它提供:自动故障转移和数据冗余。
副本集是一组MongoDB服务器,它们维护相同的数据集,提供冗余并提高数据可用性。
MongoDB提供水平可伸缩性作为其核心功能的一部分:
分片在一组机器上分配数据。
从3.4开始,MongoDB支持基于分片键创建数据区域。 在平衡群集中,MongoDB仅将区域覆盖的读取和写入指向区域内的分片。 有关详细信息,请参阅区域手册页。
MongoDB支持多个存储引擎:
WiredTiger存储引擎(包括对静态加密的支持)
内存存储引擎
MMAPv1存储引擎(在MongoDB 4.0中不推荐使用)
此外,MongoDB提供可插拔存储引擎API,允许第三方为MongoDB开发存储引擎