MongoDB是一个基于分布式文件存储的NoSQL数据库。由C++编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB支持的数据结构非常松散,是类似JSON的BSON格式。因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB 的设计目标是高性能、可扩展、易部署、易使用,存储数据非常方便。其主要功能特性如下。
(1)面向集合存储:容易存储对象类型的数据。在MongoDB 中数据被分组存储在集合中,集合类似RDBMS 中的表,一个集合中可以存储无限多的文档。
(2)模式自由:采用无模式结构存储。在MongoDB 中集合中存储的数据是无模式的文档,采用无模式存储数据是集合区别于RDBMS 中的表的一个重要特征。
(3)支持完全索引:可以在任意属性上建立索引,包含内部对象。MongoDB的索引和RDBMS 的索引基本一样,可以在指定属性、内部对象上创建索引以提高查询的速度。除此之外,MongoDB 还提供创建基于地理空间的索引的能力。
(4)支持查询:MongoDB 支持丰富的查询操作,MongoDB 几乎支持SQL中的大部分查询。
(5)强大的聚合工具:MongoDB 除了提供丰富的查询功能外,还提供强大的聚合工具,如count、group 等,支持使用MapReduce 完成复杂的聚合任务。
(6)支持复制和数据恢复:MongoDB 支持主从复制机制,可以实现数据备份、故障恢复、读扩展等功能。而基于副本集的复制机制提供了自动故障恢复的功能,确保了集群数据不会丢失。
(7)使用高效的二进制数据存储:包括大型对象(如视频)。使用二进制格式存储,可以保存任何类型的数据对象。
(8)自动处理分片:以支持云计算层次的扩展。MongoDB 支持集群自动切分数据,对数据进行分片可以使集群存储更多的数据,实现更大的负载,也能保证存储的负载均衡。
(9)支持Perl、PHP、Java、C#、JavaScript、Ruby、C 和C++语言的驱动程序,MongoDB 提供了当前所有主流开发语言的数据库驱动包,开发人员使用任何一种主流开发语言都可以轻松编程,实现访问MongoDB 数据库。
(10)文件存储格式为BSON(JSON 的一种扩展)。BSON 是对二进制格式的JSON 的简称,BSON 支持文档和数组的嵌套。
(11)可以通过网络访问。可以通过网络远程访问MongoDB 数据库。
安装配置与启动
MongoDB官网下载地址:MongoDB Community Download | MongoDB 来完成下载(ZIP压缩版或MSI安装版)、安装
若在安装中报如下错误;
打开本地服务——找到MongoDB Server——右击——选择“属性”——登录——选择本地系统账户。然后在安装界面弹窗中点击 “Retry” 即可。
配置环境变量
启动MongoDB服务
mongod.cfg 文件来修改配置。而不是去创建mongodb.conf进行配置。修改配置后重启MongoDB服务即可。
MongoDB服务启动后,使用 mongo 命令连接数据库。其中mongo命令不指定端口号时默认指定的是27017。端口号修改后,启动客户端需要在mongo命令后加上修改的端口号。
mongo #默认指定的是27017
mongo --port 27001 # 指定端口号启动客户端