MongoDB简介
MongoDB 并非以芒果命名,而是来源于单词 "Humongous"(巨大的)。MongoDB 是一个基于分布式文件存储的数据库,使用 C++ 编写,旨在为 Web 应用提供高性能的数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,在非关系数据库中具有最丰富的功能,并且最接近关系数据库。它支持类似 JSON 的 BSON 格式的复杂数据结构,并支持对数据建立索引。
MongoDB 是一个面向文档的数据库,它将传统关系型数据库中的“行”概念替换为更灵活的“文档”模型。文档可以内嵌数组和其他文档,因此一条记录可以表达复杂的层次关系。MongoDB 没有固定的模式,文档的键不会事先定义也不固定不变。
MongoDB 主要由以下三个组成部分:
- 文档(Document):文档是 MongoDB 中的基本单位,它是键值对的集合。
- 集合(Collection):集合是一组文档的容器。
- 数据库(Database):数据库是由多个集合组成的容器。
MongoDB 单个文档的最大大小限制为 16MB,如果需要存储更大的文件,MongoDB 提供了 GridFS 功能。
MongoDB的特点
-
丰富的 JSON 文档 MongoDB 支持将数组和嵌套对象存储为值,允许灵活的数据结构。
-
强大的查询语言 MongoDB 支持通过任何字段进行筛选和排序,不受字段嵌套方式的影响。此外,还支持地理空间搜索、图搜索和文本搜索等功能。
MongoDB的发展历程
2007年:由 10gen 组织开始开发。 2009年:发布了 MongoDB 1.0 版本,引入了基本的查询功能。 2010年:引入了 map-reduce 和创建后台索引的功能。 2012年:引入了聚合管道功能。 2018年:提供了跨文档事务处理的能力。 2021年:发布了支持原生时间序列的 MongoDB 5.0 版本,并推出了 MongoDB Atlas 中的无服务器数据库预览版。
MongoDB的优势和劣势
MongoDB的优势
高性能:支持嵌入式数据模型,减少 IO 活动。 高可用:提供副本集功能,实现自动故障转移。 海量数据存储:内置 GridFS 支持大文件存储。 丰富的查询支持:支持多种类型的查询操作。 多语言支持:支持多种编程语言的驱动程序。
MongoDB的劣势
单机可靠性较差。 磁盘空间占用相对较大。 大数据量持续插入时写入性能波动。
MongoDB的应用场景
MongoDB 适用于需要高性能、高扩展性和高可用性的场景,例如:
- 游戏应用:存储用户信息和游戏数据。
- 物流应用:存储订单信息和状态更新。
- 社交应用:存储用户信息和社交媒体内容。
- 视频直播:存储用户信息和礼物信息。
- 大数据应用:作为大数据存储系统,支持实时数据分析。
附录:Mongodb存储方式
JSON 格式
JSON 数据格式与语言无关,脱胎于 JavaScript,但目前很多编程语言都支持 JSON 格式数据的生成和解析。JSON 的官方 MIME 类型是 application/json,文件扩展名是 .json。
MongoDB 使用JSON(JavaScript ObjectNotation)文档存储记录。
JSON数据库语句可以容易被解析。
Web 应用大量使用,NAME-VALUE 配对
BSON 格式
Bson是一种类Json的一种二进制形式的存储格式,简称Binary Json,它和Json一样,支持内嵌的文档对象和数组对象,但是Bson有Json没有的一些数据类型,如Date和BinData类型。
Bson可以做为网络数据交换的一种存储形式,这个有点类似于Google的Protocol Buffer,但是Bson是一种schema-less的存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很理想,Bson有三个特点:轻量性、可遍历性、高效性,
{“hello":"world"} 这是一个Bson的例子,其中"hello"是key name,它一般是cstring类型,字节表示是cstring::= (byte*) "/x00" ,其中*表示零个或多个byte字节,/x00表示结束符;后面的"world"是value值,它的类型一般是string,double,array,binarydata等类型。
例如:
db.meeting.insert({meeting:“M1 June",Date:"2018-01-06"});
存储方式对比
在传统的关系型数据库中,存储方式是以表的形式存放,而在MongoDB中,以文档的形式存在。
数据库中的对应关系,及存储形式的说明
接下来,我们将进入实践环节,了解如何在您的开发环境中安装和配置 MongoDB。在上文中,我们已经深入探讨了 MongoDB 的诸多优势及其在不同场景下的应用,现在让我们一起动手,将这一强大的数据库工具部署到您的系统中。无论是为了个人学习还是实际项目应用,掌握 MongoDB 的安装与基本配置都是迈出成功的第一步。下面,我们将分别介绍在不同的操作系统环境下如何顺利安装 MongoDB,并对其进行简单的配置,以便快速上手使用。