目录
[三、MongoDB 数据存储格式](#三、MongoDB 数据存储格式)
[JSON 格式](#JSON 格式)
[BSON 格式](#BSON 格式)
一、MongoDB
MongoDB 是由 C++ 语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。
MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
二、主要特点
- MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
- 可以在 MongoDB 记录中设置任何属性的索引 (如: FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。
- 可以通过本地或者网络创建数据镜像,这使得 MongoDB 有更强的扩展性。
- 如果负载的增加(需要更多的存储空间和更强的处理能力),它可以分布在 计算机网络中的其他节点上这就是所谓的分片。
- Mongo 支持丰富的查询表达式。查询指令使用 JSON 形式的标记,可轻易查询 文档中内嵌的对象及数组。
- MongoDb 使用 update() 命令可以实现替换完成的文档(数据)或者一些指定 的数据字段 。
- Mongodb 中的 Map/reduce 主要是用来对数据进行批量处理和聚合操作。
- Map 和 Reduce。Map 函数调用 emit(key,value)遍历集合中所有的记录,将 key 与 value 传给 Reduce 函数进行处理。
- Map 函数和 Reduce 函数是使用 Javascript 编写的,并可以通过 db.runCommand 或 mapreduce 命令来执行 MapReduce 操作。
- GridFS 是 MongoDB 中的一个内置功能,可以用于存放大量小文件。
- MongoDB 允许在服务端执行脚本,可以用 Javascript 编写某个函数,直接在 服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
- MongoDB 支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种 语言。
- MongoDB 安装简单。
三、MongoDB 数据存储格式
JSON 格式
JSON 数据格式与语言无关,脱胎于 JavaScript,但目前很多编程语言都支持 JSON 格式数据的生成和解析。JSON 的官方 MIME 类型是 application/json,文件扩展名是 .json。 MongoDB 使用 JSON(JavaScript ObjectNotation)文档存储记录。 JSON 数据库语句可以容易被解析。
Web 应用大量使用,NAME-VALUE 配对
BSON 格式
BSON 是由 10gen 开发的一个数据格式,目前主要用于 MongoDB 中,是 MongoDB 的数据存储格式。BSON 基于 JSON 格式,选择 JSON 进行改造的原因主 要是 JSON 的通用性及 JSON 的 schemaless 的特性。 二进制的 JSON,JSON 文档的二进制编码存储格式 BSON 有 JSON 没有的 Date 和 BinData
MongoDB 中 document 以 BSON 形式存放 例如:
sql
db.meeting.insert({meeting:"M1 June",Date:"2018-01-06"});

四、高可用的复制集群
自动复制和故障切换 多数据中心支持滚动维护无需关机支持最多 50 个成员

五、水平扩展
这种方式是目前构架上的主流形式,指的是通过增加服务器数量来对系统扩容。 在这样的构架下,单台服务器的配置并不会很高,可能是配置比较低、很廉价的 PC,每台机器承载着系统的一个子集,所有机器服务器组成的集群会比单体服务 器提供更强大、高效的系统容载量。 这样的问题是系统构架会比单体服务器复杂,搭建、维护都要求更高的技术背景。
分片集群架构如下图所示:
适用场景
网站数据、缓存等大尺寸、低价值的数据 在高伸缩性的场景,用于对象及 JSON 数据的存储。