MongoDB 简介

什么是 MongoDB?

MongoDB 是由C++语言编写的,开源的、面向文档的 NoSQL 数据库管理系统。它使用类似 JSON 的 BSON(二进制 JSON)格式来存储数据,具有高度灵活性和可扩展性。

与传统的关系型数据库不同,MongoDB 是一个非关系型数据库,它不使用表格和固定模式来存储数据。相反,MongoDB 使用集合(Collections)来组织数据,每个集合可以包含不同结构的文档(Documents)。文档是以键值对的形式存储的,可以包含各种类型的数据,如字符串、数字、日期、数组和嵌套文档等。

下图就是 MongoDB 的一个集合:

MongoDB 简介

上图中,在名为 myCollection 的集合中存储了三个文档 Document,用来记录三个用户的基本信息。其中,李四的文档多出了一个 page 字段,王五的文档多出了一个 pet 字段,导致三个文档的结构都不一样,这就是 MongoDB 的灵活性,不像传统关系型数据库那样,表中的所有记录的结构均是一致的。

MongoDB 特点

  • 高度可扩展:MongoDB 支持水平扩展,可以通过添加更多的服务器来处理更大的数据量和负载。

  • 灵活的数据模型:MongoDB 的文档模型非常灵活,可以轻松地存储和查询各种类型的数据。

  • 高性能:MongoDB 具有快速的读写操作,支持索引和复制等功能,可以满足高并发和低延迟的需求。

  • 强大的查询语言:MongoDB 提供了丰富的查询语言,包括基本的 CRUD 操作(创建、读取、更新、删除),以及聚合管道和地理空间查询等高级功能。

  • 自动分片:MongoDB 支持自动数据分片,可以将数据分散存储在多个服务器上,提高性能和可用性。

  • 支持索引:MongoDB 可以在记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road") 来实现更快的排序。

  • Map/Reduce:Mongodb 中的 Map/reduce 可以用来对数据进行批量处理和聚合操作。

  • GridFS支持:GridFS 是 MongoDB 中的一个内置功能,可以用于存放大量小文件。

  • 服务端脚本:MongoDB 允许在服务端执行脚本,可以用 Javascript 编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。

  • MongoDB 支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。

MongoDB 历史

MongoDB 的历史可以追溯到 2007 年,由 Dwight Merriman、Eliot Horowitz 和 Kevin Ryan 共同创立。最初,他们是为了构建一个可扩展的、高性能的数据库系统来支持他们的在线广告业务需求。

2009 年,MongoDB 正式发布,并且开源。在发布初期,MongoDB 的目标是提供一个简单易用的数据库解决方案,同时具备高性能、可扩展性和灵活性。它的设计理念是基于文档存储模型,以满足当时Web 应用程序对数据存储的需求。

2012年05月23日,MongoDB2.1 开发分支发布了! 该版本采用全新架构,包含诸多增强。

2012年06月06日,MongoDB 2.0.6 发布,分布式文档数据库。

2013年04月23日,MongoDB 2.4.3 发布,此版本包括了一些性能优化,功能增强以及bug修复。

2013年08月20日,MongoDB 2.4.6 发布。

2013年11月01日,MongoDB 2.4.8 发布。

....

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号