Skip to content

MongoDB

L edited this page Jun 7, 2019 · 4 revisions

简介

MongoDB是一个文档数据库,旨在简化开发和扩展
MongoDB提供数据库的社区版和企业版
MongoDB将数据记录存储为BSON文档。 BSON是JSON文档的二进制表示,但它包含的数据类型多于JSON。 有关BSON规范,请参阅bsonspec.org
官网入门

文档数据库

MongoDB中的记录是一个文档,它是由字段和值对组成的数据结构。 MongoDB文档类似于JSON对象。 字段的值可以包括其他文档,数组和文档数组
1
使用文档的好处是:

文档(即对象)对应于许多编程语言中的本机数据类型。
嵌入式文档和数组减少了对昂贵连接的需求。
动态模式支持流畅的多态性。

文件结构

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开发存储引擎

原文

Introduction to MongoDB Documents

Clone this wiki locally