什么是MongoDB
> MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
> 在高负载的情况下,添加更多的节点,可以保证服务器性能。
> MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案
MongoDB的特点
> MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
> 你可以在MongoDB记录中设置任何属性的索引(如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。
> 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
> 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
> Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
> MongoDb使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
> Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
> Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
> Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
> GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
> MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
> MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。 MongoDB安装简单。
MongoDB下载
你可以在mongodb官网下载该安装包,地址为:https://www.mongodb.com/download-center#community
MongoDB工具
有几种可用于MongoDB的管理工具。
监控
MongoDB提供了网络和系统监控工具Munin,它作为一个插件应用于MongoDB中。
Gangila是MongoDB高性能的系统监视的工具,它作为一个插件应用于MongoDB中。
基于图形界面的开源工具 Cacti, 用于查看CPU负载, 网络带宽利用率,它也提供了一个应用于监控 MongoDB 的插件。
GUI
1. Fang of Mongo – 网页式,由Django和jQuery所构成。
2. Futon4Mongo – 一个CouchDB Futon web的mongodb山寨版。
3. Mongo3 – Ruby写成。 MongoHub – 适用于OSX的应用程序。
4. Opricot –一个基于浏览器的MongoDB控制台, 由PHP撰写而成。
5. Database Master — Windows的mongodb管理工具
6. RockMongo — 最好的PHP语言的MongoDB管理工具,轻量级, 支持多国语言.
centos7 安装MongoDB
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
MongoDB 提供了 linux 各个发行版本 64 位的安装包,你可以在官网下载安装包。
安装前我们需要安装依赖包。
[root@localhost ~]# yum install libcurl openssl
MongoDB 源码下载地址:https://www.mongodb.com/download-center#community
这里我们选择 tgz 下载,下载完安装包,并解压 tgz(以下演示的是 64 位 Linux上的安装) 。
下载并解压安装包
tar -zxvf mongodb-linux-x86_64-rhel70-4.2.8.tgz
创建数据库目录
默认情况下 MongoDB 启动后会初始化以下两个目录:
数据存储目录:/var/lib/mongodb
日志文件目录:/var/log/mongodb
我们在启动前可以先创建这两个目录并设置当前用户有读写权限:
[root@localhost lib]# mkdir -p /var/lib/mongo
[root@localhost lib]# mkdir -p /var/log/mongodb
[root@localhost lib]# chown `whoami` /var/lib/mongo ##设置权限
[root@localhost lib]# chown `whoami` /var/log/mongodb ##设置权限
启动MongoDB
切换到MongoDB安装bin目录下
[root@localhost bin]# ./mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
打开 /var/log/mongodb/mongod.log 文件看到以下信息,说明启动成功。
[root@localhost mongodb]# tail -13f /var/log/mongodb/mongod.log
2020-07-15T10:45:19.278+0800 I NETWORK [listener] Listening on /tmp/mongodb-27017.sock
2020-07-15T10:45:19.278+0800 I NETWORK [listener] Listening on 127.0.0.1
2020-07-15T10:45:19.278+0800 I NETWORK [listener] waiting for connections on port 27017
MongoDB 后台管理 Shell
如果你需要进入 mongodb 后台管理,你需要先打开 mongodb 装目录的下的 bin 目录,然后执行 mongo 命令文件。
MongoDB Shell 是 MongoDB 自带的交互式 Javascript shell,用来对 MongoDB 进行操作和管理的交互式环境。
当你进入 mongoDB 后台后,它默认会链接到 test 文档(数据库):
[root@localhost bin]# pwd
/usr/local/mongodb-linux-x86_64-rhel70-4.2.8/bin
[root@localhost bin]# ./mongo
MongoDB shell version v4.2.8
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("2cfdafc4-dd56-4cfc-933a-187b887119b3") }
MongoDB server version: 4.2.8
Welcome to the MongoDB shell.
由于它是一个JavaScript shell,您可以运行一些简单的算术运算:
> 2+2
4
> 4+6
10
停止mongodb
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --shutdown