MongoDB 简介

目录

一、MongoDB 

二、主要特点

三、MongoDB 数据存储格式  

JSON 格式  

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 形式存放  例如:  

db.meeting.insert({meeting:“M1 June",Date:"2018-01-06"});  

MongoDB 简介_第1张图片

 四、高可用的复制集群

自动复制和故障切换 多数据中心支持滚动维护无需关机支持最多 50 个成员

MongoDB 简介_第2张图片

 五、水平扩展

这种方式是目前构架上的主流形式,指的是通过增加服务器数量来对系统扩容。 在这样的构架下,单台服务器的配置并不会很高,可能是配置比较低、很廉价的 PC,每台机器承载着系统的一个子集,所有机器服务器组成的集群会比单体服务 器提供更强大、高效的系统容载量。 这样的问题是系统构架会比单体服务器复杂,搭建、维护都要求更高的技术背景。

分片集群架构如下图所示:

MongoDB 简介_第3张图片MongoDB 简介_第4张图片

 

 

适用场景

网站数据、缓存等大尺寸、低价值的数据 在高伸缩性的场景,用于对象及 JSON 数据的存储。

你可能感兴趣的:(DateBase,mongodb,数据库,redis)