MongoDB 简介 | 基于分布式文件存储的数据库

MongoDB 教程


什么是MongoDB ?

MongoDB 是由C++语言编写的 NoSQL 数据库。是一个基于分布式文件存储的开源、跨平台、面向文档的数据库。

MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

MongoDB教程包括插入文档、更新文档、删除文档、查询文档、投影、sort()和limit()方法、创建集合、删除集合等MongoDB数据库的所有主题。


MongoDB架构

下面是MongoDB服务器主要组件的架构视图。


MongoDB的特点

1. 支持特别查询

在MongoDB中,您可以通过字段、范围进行搜索查询,它还支持正则表达式搜索。

2. 索引

您可以索引文档中的任何字段。

3. 复制

MongoDB 支持主从复制。

master 可以执行 Reads 和 Writes,而 Slave 从 master 复制数据,只能用于读取或备份(不能写入)

4. 数据重复

MongoDB 可以在多个服务器上运行。数据被复制以保持系统正常运行并在硬件故障的情况下保持其运行状态。

5. 负载均衡

由于数据位于分片中,因此它具有自动负载平衡配置。

6. 支持map reduce和aggregation工具。

7. 使用JavaScript而不是过程。

8. 它是一个用C++编写的无模式数据库。

9. 提供高性能。

10. 轻松存储任何大小的文件,而不会使您的堆栈复杂化。

11. 出现故障时易于管理。

12.它还支持:

具有动态模式的 JSON 数据模型

自动分片以实现水平可扩展性

内置复制以实现高可用性

现在,许多公司使用 MongoDB 来创建新类型的应用程序,提高性能和可用性。


MongoDB的历史

  • Mongodb 最初于2007年开发,由位于纽约的一个名为10gen的组织开发,现在被称为MongoDB
  • 2009年,经过将近2年的开发,10gen开发了出了MongoDB的皱形并将它开源以及正式命名为mongoDB,同时成立开源社区,通过社区运营MongoDB
  • 2009 年 2 月发布了MongoDB 1.0 ,提供了大部分基本的查询功能。
  • 2009 年 12 月发布了 MongoDB 1.2 引入了 map-reduce,支持大规模数据处理。在看到 MongoDB 的巨大潜力之后,10gen 公司迅速壮大了团队。
  • 2010 年 3 月 发布了MongoDB 1.4,引入了后台索引创建。据说这是mongoDB第一个真正的产品
  • 2010 年 8 月 发布了MongoDB 1.6 ) 引入了一些主要特性,比如用于水平伸缩的分片、具备自动故障转移能力的副本集以及对 IPv6 的支持。到了 2012 年,10gen 有 100 名员工,公司开始提供 24/7 服务。
  • 2012 年 5 月 23 日,发布了 MongoDB2.1 .该版本采用全新架构,包含诸多增强。
  • 2012 年 6 月 6 日 ,发布了MongoDB2.0.6 ,分布式文档数据库。
  • 2012 年 8 月,MongoDB 2.2 版本 发布 ,引入了聚合管道,可以将多个数据处理步骤组合成一个操作链。
  • 2013 年 MongoDB推出第一款商业版本MongoDB Enterprise Advanced
  • 2013 年 4 月 23 日, MongoDB 2.4.3 发布,此版本包括了一些性能优化,功能增加以及bug修复
  • 2013 年 8 月 20 日,MongoDB 2.4.6 发布,仍然是以性能优化,功能增强及bug修复为主
  • 2015 年 3 月 MongoDB 3.0 发布,包含了新的,WiredTiger 存储引擎、可插拔存储引擎API,增加了50个副本集限制和安全改进,同年晚些时候又发布了3.2版本,支持文档验证、部分索引和一些主要的聚合增加。
  • 2016 年 MongoDB推出了 Atlas服务,MongoDB Atlas 与公有云服务厂商(谷歌、微软Azure)合作,这一年,MongoDB 爆出了非常严重的安全门事件,黑客通过MongoDB 的默认监听地址 0.0.0.0删除数据,并且通过此漏洞进行勒索,支付0.2到0.5的比特币就可以恢复数据。
  • 2017 年 10 月 MongDB 公司成立10周年之际,顺利通过IPO在 纽交所上市,开盘24美元,公司估值达到16亿美元,并获得1.92亿美元的筹资。
  • 2017 年 11 月 发布 MongoDB 3.6 ,为多集合连接查询、变更流和使用 JSON 模式进行文档验证提供了更好的支持。
  • 2018 年 6 月 发布 MongoDB 4.0,这一版本发布获得了广泛的关注, 提供了跨文档事务处理能力。这是一个重要的里程碑,MongoDB 已经为高数据完整性需求做好了准备。
  • 2019 年 3 月 18 日, Forrester授予MongoDB NoSQL 领导者称号
  • 2019 年 10 月 MongoDB 4.2 发布 ,开始支持分布式事务。
  • 截至2020 年 10 月 , MongoDB的社区版版本是4.4.1,扩展性和性能增强,降低复制延迟,可用性和容错性增强,查询能力和易用性增强,MongoDB云平台的功能更新。MongoDB云平台的功能更新。MongoDB 逐渐的从一个专注于数据库服务的厂商,转变为提供数据平台服务的厂商。

MongoDB 下载

你可以在mongodb官网下载该安装包,地址为:https://www.mongodb.com/download-center#community。MonggoDB支持以下平台:

  • OS X 32-bit
  • OS X 64-bit
  • Linux 32-bit
  • Linux 64-bit
  • Windows 32-bit
  • Windows 64-bit
  • Solaris i86pc
  • Solaris 64

MongoDB的语言支持

MongoDB有官方的驱动如下:


MongoDB 工具

有几种可用于MongoDB的管理工具。

监控

MongoDB提供了网络和系统监控工具Munin,它作为一个插件应用于MongoDB中。

Gangila是MongoDB高性能的系统监视的工具,它作为一个插件应用于MongoDB中。

基于图形界面的开源工具 Cacti, 用于查看CPU负载, 网络带宽利用率,它也提供了一个应用于监控 MongoDB 的插件。

GUI

  • Fang of Mongo – 网页式,由Django和jQuery所构成。
  • Futon4Mongo – 一个CouchDB Futon web的mongodb山寨版。
  • Mongo3 – Ruby写成。
  • MongoHub – 适用于OSX的应用程序。
  • Opricot – 一个基于浏览器的MongoDB控制台, 由PHP撰写而成。
  • Database Master — Windows的mongodb管理工具
  • RockMongo — 最好的PHP语言的MongoDB管理工具,轻量级, 支持多国语言.

MongoDB 教程


相关