MongoDB零基础入门到高级进阶-尚学堂
一、MongoDB简介
1、什么是MongoDB
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
2、什么是NoSQL
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。
NoSQL是否能代替关系型数据库?
现在还不能,关系型数据库用于数据的持久化,而NoSQL主要用户数据的检索
3、NoSQL数据库的分类
3.1 键值(Key-Value)存储数据库
这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。举例如redis
3.2 列存储数据库
这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra, HBase, Riak。
3.3 文档型数据库
3.4 图形数据库
二、MongoDB与关系型数据库的对比
1、MongoDB与关系型数据库的术语对比
2、数据存储对比
3、RDBMS 与 MongoDB对应的术语
RDBMS :related database management system
三、MongoDB的数据类型
四、MongoDB的下载和安装
1、下载MongoDB
下载地址:https://www.mongodb.com/download-center/community
2、安装MongoDB
1)上传 MongoDB安装包到linux系统中 /home/leyou文件夹下
2)解压缩
tar -xvf mongodb-linux-x86_64-rhel70-4.0.25.tgz
3)将解压后的mongoDB目录移动到 /opt目录中并改名为 mongodb
mv mongodb-linux-x86_64-rhel70-4.0.25 /opt/mongodb
4)创建数据存储目录
MongoDB的数据可以通过配置存储在任意目录下,在案例中存储在$MongoDB_HOME/data/db目录中,这个目录需要手动创建
mkdir -p /opt/mongodb/data/db/
5)创建日志存储目录
MongoDB的日志数据可以通过配置存储在任意目录下,在案例中存储在$MongoDB_HOME/logs目录中,且日志文件名为mongodb.logs。这个目录和日志文件需要手工创建
mkdir -p /opt/mongodb/logs/
touch /opt/mongodb/logs/mongodb.log
至此,MongoDB安装成功
3、MongoDB的启动
1) MongoDB的启动方式分为两种
①、前置启动
②、后置启动
前置启动:
MongoDB的默认启动方式为前置启动。所谓前置启动就是MongoDB启动进程后会占用当前终端窗口
命令为:/opt/mongodb/bin/mongod --dbpath /opt/mongodb/data/db/
后置启动
所谓后置启动就是以守护进程的方式启动MongoDB。命令中的fork就是开启子进程。
命令为:
/opt/mongodb/bin/mongod --dbpath /opt/mongodb/data/db/ --logpath /opt/mongodb/logs/mongodb.log –fork
配置启动
命令启动并不适合管理,毕竟每次输入命令都需要考虑各参数的配置。可以通过配置文件来配置启动参数,这样在管理MongoDB上比较方便
①、编辑配置文件
mkdir /opt/mongodb/etc/
vi /opt/mongodb/etc/mongodb.conf
dbpath=/opt/mongodb/data/db/
logpath=/opt/mongodb/logs/mongodb.log
logappend=true
bind_ip_all=true
port=27017
fork=true
port是端口,27017即默认的MongoDB端口号。
bind_ip_all是绑定所有IP,即所有客户端都可以访问
②、启动
/opt/mongodb/bin/mongod --config /opt/mongodb/etc/mongodb.conf
或者
/opt/mongodb/bin/mongod -f /opt/mongodb/etc/mongodb.conf
4、MongoDB关闭
1)前置启动关闭,使用 ctrl+C
如果我们的启动方式是前置启动,那么直接使用快捷键ctrl+c就可以关闭mongoDB。这种关闭方式会等待当前进行中的操作完成,所以是安全的关闭方式
2)使用kill命令关闭
我们可以通过Linux的kill命令结束mongoDB进程,然后删除data/db目录中的mongod.lock文件,否则下次无法启动,但是此方法不建议使用,因为会造成数据损坏现象
3)使用mongoDB的函数关闭
连接到MongoDB服务后,切换到admin库,并使用命令关闭服务。
use admin
db.shutdownServer()
db.runCommand(“shutdown”)
4)使用mongod的命令关闭
mongod --shutdown --dbpath <path>
mongod命令的shutdown选项能安全的关闭 MongoDB服务