什么是 MongoDB ?

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 10月更文挑战第10天

MongoDB 是一个文档型数据库,数据以类似 JSON 的文档形式存储。

MongoDB 的设计理念是为了应对大数据量、高性能和灵活性需求。

MongoDB使用集合(Collections)来组织文档(Documents),每个文档都是由键值对组成的。

  • 数据库(Database):存储数据的容器,类似于关系型数据库中的数据库。
  • 集合(Collection):数据库中的一个集合,类似于关系型数据库中的表。
  • 文档(Document):集合中的一个数据记录,类似于关系型数据库中的行(row),以 BSON 格式存储。

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


主要特点

  • 文档导向的存储:MongoDB 是一个面向文档的数据库,它以 JSON-like 的格式存储数据,使得数据结构更加灵活和丰富。
  • 索引优化查询:MongoDB 允许用户为文档中的任意属性创建索引,例如 FirstNameAddress,从而提高查询效率和排序性能。
  • 数据镜像与扩展性:通过本地或网络创建数据的副本,MongoDB 实现了强大的数据冗余和扩展能力。
  • 水平扩展与分片:面对增加的负载,MongoDB 可以通过分片技术将数据分布到计算机网络中的其他节点上,实现水平扩展。
  • 强大的查询语言:MongoDB 使用 JSON 格式的查询语法,支持复杂的查询表达式,包括对内嵌对象和数组的查询。
  • 数据更新:利用 update() 命令,MongoDB 能够替换整个文档或更新指定的数据字段,提供了灵活的数据更新方式。
  • MapReduce 批量处理:MongoDB 的 MapReduce 功能专为大规模数据处理和聚合操作设计,通过 Map 函数的 emit(key, value) 调用和 Reduce 函数的逻辑处理,实现高效的数据汇总。
  • MapReduce 脚本编写:Map 和 Reduce 函数使用 JavaScript 编写,可以通过 db.runCommandmapreduce 命令在 MongoDB 中执行。
  • GridFS 大文件存储:GridFS 是 MongoDB 内置的功能,用于存储和检索大于 BSON 文档大小限制的文件,如图片和视频。
  • 服务端脚本执行:MongoDB 允许在服务端执行 JavaScript 脚本,提供了直接在服务端执行或存储函数定义以供后续调用的能力。
  • 多语言支持:MongoDB 提供了对多种编程语言的支持,包括但不限于 RUBY、PYTHON、JAVA、C++、PHP 和 C#。
  • 安装简单:MongoDB 的安装过程简单直观,便于用户快速部署和使用。

历史

版本 发布日期 特性说明
1.0 2009年8月 每个集合更多的索引
更快的索引创建
1.2 2009年12月 Map/Reduce
存储的 JavaScript 函数
可配置的 fsync 时间
几个小特性和修复
1.4 2010年3月 生产就绪的分片(sharding)
1.6 2010年8月 副本集(replica sets)
支持 IPv6
1.8 2011年3月
2.0 2011年9月
2.2 2012年8月 增强的地理空间支持
切换到 V8 JavaScript 引擎
2.4 2013年3月 安全性增强
文本搜索(beta)
哈希索引
聚合增强
文本搜索集成
2.6 2014年4月8日 查询引擎改进
新的写操作协议
安全性增强
WiredTiger 存储引擎支持
可插拔存储引擎 API
3.0 2015年3月3日 SCRAM-SHA-1 认证
改进的 explain 功能
MongoDB Ops Manager
副本集选举增强
WiredTiger 存储引擎默认
3.2 2015年12月8日 配置服务器作为副本集
读关注
从 V8 切换到 SpiderMonkey
线性化读关注
3.4 2016年11月29日 视图
排序(collation)
3.6 2017年11月
4.0 2018年6月 事务
4.2 2019年8月
4.4 2020年7月
4.4.5 2021年4月
4.4.6 2021年5月 面向未来的版本化 API
5.0 2021年7月13日 客户端字段级加密
实时重分片
时间序列支持
6.0 2022年7月
7.0 2023年8月15日

MongoDB 下载

你可以在 MongoDB 官网下载该安装包,地址为:https://www.mongodb.com/try/download/community

MongoDB 支持以下平台:

  • Linux:MongoDB 支持各种 Linux 发行版,包括但不限于 Ubuntu、Debian、CentOS、Red Hat Enterprise Linux(RHEL)、Fedora 等。
  • Windows:MongoDB 提供了适用于 Windows 操作系统的官方版本,可以在 Windows Server 和 Windows 桌面操作系统上运行。
  • macOS:MongoDB 可以在 macOS 上运行,并且提供了适用于 macOS 的官方安装程序。
  • Docker:MongoDB 也可以作为 Docker 容器运行,这使得在各种平台上部署和管理 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 应用案例

下面列举一些公司MongoDB的实际应用:

  • Craiglist上使用MongoDB的存档数十亿条记录。
  • FourSquare,基于位置的社交网站,在Amazon EC2的服务器上使用MongoDB分享数据。
  • Shutterfly,以互联网为基础的社会和个人出版服务,使用MongoDB的各种持久性数据存储的要求。
  • bit.ly, 一个基于Web的网址缩短服务,使用MongoDB的存储自己的数据。
  • spike.com,一个MTV网络的联营公司, spike.com使用MongoDB的。
  • Intuit公司,一个为小企业和个人的软件和服务提供商,为小型企业使用MongoDB的跟踪用户的数据。
  • sourceforge.net,资源网站查找,创建和发布开源软件免费,使用MongoDB的后端存储。
  • etsy.com ,一个购买和出售手工制作物品网站,使用MongoDB。
  • 纽约时报,领先的在线新闻门户网站之一,使用MongoDB。
  • CERN,著名的粒子物理研究所,欧洲核子研究中心大型强子对撞机的数据使用MongoDB。
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
NoSQL 安全 数据库连接
MongoDB 常见使用
MongoDB 常见使用
504 0
MongoDB 常见使用
|
2月前
|
存储 NoSQL 物联网
MongoDB在哪些领域有应用?
MongoDB在哪些领域有应用?
55 3
|
2月前
|
存储 监控 NoSQL
MongoDB介绍
MongoDB介绍
37 1
|
11月前
|
存储 NoSQL MongoDB
关于MongoDB
关于MongoDB
139 0
|
NoSQL 前端开发 MongoDB
MongoDB应用
初始化路由模板 数据库和前端页面交互 编写注册的后台接口 先连接数据库 和前台进行数据交互 文章的后台接口 先查询所有的文章内容 发文章 一些验证方法 邮箱验证 用户名随机生成
66 0
|
存储 SQL NoSQL
mongoDB(二)
mongoDB
92 0
|
NoSQL Shell Linux
|
SQL JSON NoSQL
老去的MongoDB,未来在哪里?
老去的MongoDB,未来在哪里?
219 0
|
存储 分布式计算 NoSQL
MongoDB的主要特点
MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
154 0
|
存储 NoSQL 索引
什么场景应该用 MongoDB ?
月初在云栖社区上发起了一个 MongoDB 使用场景及运维管理问题交流探讨 的技术话题,有近5000人关注了该话题讨论,这里就 MongoDB 的使用场景做个简单的总结,谈谈什么场景该用 MongoDB? 很多人比较关心 MongoDB 的适用场景,也有用户在话题里分享了自己的业务场景,比如 案