首页 > 数据库技术 > 详细

MongoDB

时间:2019-10-18 22:43:48      阅读:81      评论:0      收藏:0      [点我收藏+]

一、 MongoDB 简介

为什么要学nosql数据库?

 
  在我们项目当中,或者互联网当中,所产生的数据量是非常庞大的。在大数据量的情况下,对系统的性能而言,在数据库这层是会产生瓶颈的,因为关系型数据库的检索是非常耗时的,进行大量io操作。所以在数据的存储上是有要求的,除了要有关系型数据库以外,还要添加一些非关系型数据库或者叫onsql数据库或者叫内存型数据库。

1 什么是 MongoDB

 
  MongoDB 是一个基于分布式文件存储的数据库。由 C++语言编写。在为 WEB 应用提
供可扩展的高性能数据存储解决方案。
  MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功
能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 json 的 bson 格式,因
此可以存储比较复杂的数据类型。Mongo 最大的特点是它支持的查询语言非常强大,其语
法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功
能,而且还支持对数据建立索引。
 

2 什么是 NoSQL

 
  NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是 SQL”,是一项全新的数据库革命性运
动,早期就有人提出,发展至 2009 年趋势越发高涨。NoSQL 的拥护者们提倡运用非关系型
的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。(nosql数据库会有丢失数据现象)
 

3 NoSQL 数据库的分类

 

3.1键值(Key-Value)存储数据库

 
  这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定
的数据。Key/value 模型对于 IT 系统来说的优势在于简单、易部署。但是如果 DBA 只对部
分值进行查询或更新的时候,Key/value 就显得效率低下了。例如: Redis
 

3.2列存储数据库

 
  这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是
指向了多个列。这些列是由列家族来安排的。如:HBase。
 

3.3文档型数据库

 
  文档型数据库的灵感是来自于 Lotus Notes 办公软件的,而且它同第一种键值存储相类
似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如 JSON。
文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比
键值数据库的查询效率更高。如:CouchDB, MongoDB. 国内也有文档型数据库 SequoiaDB,
已经开源。
 

3.4图形(Graph)数据库

 
图形结构的数据库同其他行列以及刚性结构的 SQL 数据库不同,它是使用灵活的图形
模型,并且能够扩展到多个服务器上。NoSQL 数据库没有标准的查询语言(SQL),因此进行
数据库查询需要制定数据模型。许多 NoSQL 数据库都有 REST 式的数据接口或者查询 API。
如:Neo4J, InfoGrid。
 

二、 MongoDB 与关系型数据库对比

 

1 与关系型数据库术语对比

技术分享图片

 

 

2 存储数据对比

技术分享图片

 

 

3 RDBMS 与 MongoDB 对应的术语

技术分享图片

 

 

三、 MongoDB 的数据类型

技术分享图片

 

 

 

四、 MongoDB 的下载与安装

 

1 下载 MongoDB

 
下载地址:https://www.mongodb.com/download-center/community
 

2 安装 MongoDB

 

2.1.1下载 ForLinux 平台的 MongoDB

技术分享图片

 

 

2.2Linux 安装

在 Linux 平台的 MongoDB 为解压版。我们只要解压 tgz 文件就可以使用。
2.2.1将下载的 tgz 包上传到 Linux 环境中
我将 tgz 包上传到了自己创建的 temp 目录中。该目录位于/root 目录中。 
 
在 Linux 平台的 MongoDB 为解压版。我们只要解压 tgz 文件就可以使用。
 

2.2.1将下载的 tgz 包上传到 Linux 环境中

 
我将 tgz 包上传到了自己创建的 temp 目录中。该目录位于/root 目录中。
技术分享图片

 

 

2.2.2解压 tgz 文件

 
通过 tar 命令对 tgz 文件做解压处理。
 技术分享图片

 

 

2.2.3移动 MongoDB

 
我们将解压完的 MongoDB 目录移动到/usr/local 目录中并改名为 mongodb。
技术分享图片

 

 

2.2.4创建数据库目录

 
MongoDB 的数据存储在 data 目录的 db 目录下,但是这个目录在安装过程不会自动创
建,需要手动创建 data 目录,并在 data 目录中创建 db 目录。data 目录可以创建在任何位置。
本套视频中,我们将 data 目录创建在 mongodb 的根目录下。
技术分享图片

 

 

至此 Linux 平台中的 MongoDB 就已经安装完毕。
3 MongoDB 的启动与关闭
3.1启动 MongoDB
MongoDB 的启动方式分为两种
 

1)前置启动

 

2)后置启动

 
无论哪种启动方式都需要执行 bin 目录中的 mongod 命令。MongoDB 在启动时默认的
查找数据库的路径为/data/db。如果我们数据库路径有变化,需要在该命令中通过--dbpath 参
数来指定 db 目录的路径(该路径可以是绝对路径,也可是相对路径)。
 

3.1.1前置启动

 
MongoDB 的默认启动方式为前置启动。所谓前置启动就是 MongoDB 启动进程后会占
用当前终端窗口。
进入到 MongoDB 的 bin 目录。
技术分享图片

 

 

执行 bin 目录中的 mongod 命令。
 
技术分享图片

 

 

由于我们的 db 目录放在 mongodb 的根下,所以在执行该命令时需要通过 --dbpath 参数
指定 db 路径。
 
技术分享图片

 

 

启动后会在终端中输出一些启动信息。此时终端窗口已被启动进程所占用。我们通过启
动信息可以看到 MongoDB 默认的监听端口为 27017
 
技术分享图片

 

 

按 Ctrl+C 可结束启动进程关闭 MongoDB 
技术分享图片

 

 

3.1.2后置启动

 
所谓后置启动就是以守护进程的方式启动 MongoDB。我们需要在执行 mongod 命令中
添加 --fork 参数。需要注意的是,--fork 参数需要配合着--logpath 或者是--syslog 参数使用。
--logpath 与--syslog 参数是指定 MongoDB 的日志文件。MongoDB 的日志文件可以在系统中的任意位置,本视频中我们在 mongodb 目录下创建 log 目录,在该目录中创建一个名为
mongodb.log 的日志文件。
创建 log 目录
 
技术分享图片

 

 

在 log 目录中创建 mongodb.log 日志文件
技术分享图片

 

 技术分享图片

 

 

3.1.3常见的启动参数

技术分享图片

 

 

3.1.4通过配置文件加载启动参数

 
如果觉得在启动 MongoDB 时给定的参数项太多,那么我们也可以通过配置文件来配置
启动参数,配置文件可以在任意目录中,配置文件的扩展名应为.conf,配置文件中使用
key=value 结构。在执行 MongoDB 时通过--config 参数来指定需要加载的配置文件。
我们在 mongodb 目录下创建一个 etc 目录,在该目录中创建一个名为 mongodb.conf 的
配置文件。
技术分享图片

 

 

创建 mongodb.conf 配置文件
技术分享图片

 

 

编辑配置文件,在配置文件中添加配置项:
1)指定 db 路径
2)指定日志文件
3)配置端口
4)配置后端启动
在配置文件中配置启动参数时需要注意的是,在参数前不在加--符号,直接以参数名作
为 key 就可以。
 
技术分享图片

 

 

通过加载配置文件启动 MongoDB 
技术分享图片

 

 

3.1.5配置环境变量

 
为了能够在任何目录中执行 bin 目录中的命令,我们可以将 bin 目录添加到环境变量中。
修 改 /etc/profile 文 件 , 添 加 export PATH=/usr/local/mongodb/bin:$PATH 。
/usr/local/monogdb/bin 为 MongoDB 的 bin 目录的绝对路径。同学们可根据自己的情况来指定。 
技术分享图片

 

 技术分享图片

 

 

 
技术分享图片

 

 

3.2关闭 MongoDB

 

3.2.1使用 Ctrl+C 关闭

 
如果我们的启动方式是前置启动,那么直接使用快捷键 Ctrl+C 就可以关闭 MongoDB。
这种关闭方式会等待当前进行中的的操作完成,所以依然是安全的关闭方式。
3.2.2使用 kill 命令关闭
我们可以通过 Linux 的 kill 命令结束 MongoDB 进程,然后删除 data/db 目录中的
mongod.lock 文件,否则下次无法启动。但是此方法不建议使用,因为会造成数据损坏现象。
 

3.2.3使用 MongoDB 的函数关闭

 
在 MongoDB 中提供了两个关闭数据库的函数:
db.shutdownServer()
db.runCommand(“shutdown”)
如上两个方法都需要在 admin 库中执行,并且都是安全的关闭方式。
 

3.2.4使用 mongod 命令关闭 MongoDB

 
mongod --shutdown --dbpath<数据库路径>
mongod 命令的 shutdown 选项能安全的关闭 MongoDB 服务
 

五、 MongoDB 的用户与权限管理

 
Mongodb 作为时下最为热门的数据库,那么其安全验证也是必不可少的,否则一个没
有验证的数据库暴露出去,任何人可随意操作,这将是非常危险的。我们可以通过创建用户
的方式来降低风险。
 

MongoDB

原文:https://www.cnblogs.com/wq-9/p/11701167.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!