CentOS 7下MongoDB 3.6 的安装及基本操作

2022-08-17 17:08:40 浏览数 (1)

一、MongoDB简介

1.MongoDB是一款跨平台、面向文档的数据库,可以实现高性能,高可用性,并且能够轻松扩展。MongoDB 是由C 语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB可以为Web应用提供可扩展的高性能数据存储解决方案。

2.MongoDB是非关系数据库当中功能最丰富,最像关系数据库的。不采用关系模型主要是为了获得更好的扩展性,MongoDB不再有“行”的概念,其运行方式主要基于两个概念:集合(collection)和文档(document)。

3.MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

4.MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

MongoDB主要特点 1.MongoDB安装简单,提供了面向文档存储的功能,操作起来比较简单和容易。 2.MongoDB提供了复制、高可用性和自动分片功能。如果负载增加,它可以分布在计算机网络中的其他节点,这就是所谓的分片。 3.Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。 4.MongoDB支持各种编程语言:Ruby、Python、Java、C 、PHP、C#等多种语言。

二、CentOS 7MongoDB 3.6的安装

实验步骤

(1)部署 yum源仓库

vim /etc/yum.repos.d/mongod-org.repo

[mongodb-org] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/RedHat/$releasever/mongodb-org/3.6/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

(2)Yum安装

yum install mongodb-org -y

(3).编辑MongoDB配置文件并启动其服务

vim /etc/mongod.conf bindIp: 0.0.0.0            #监听地址 port: 27017                #监听端口

systemctl start mongod.service  #开启服务 netstat -anpt | grep 27017    #检查是否启动

(4)连接并访问MongoDB

/usr/bin/mongo > db.version()  #查看版本 3.6.6  > show dbs;    #查看数据库 admin  0.000GB config  0.000GB local  0.000GB     

三、MongoDB 3.6的基本操作

1.开启多实例

(1)复制一份配置文件给第二个实例

cp -p /etc/mongod.conf /etc/mongod2.conf ## 复制一份配置文件给第二个实例

(2)编辑第二个实例配置文件和启动参数

vim /etc/mongod2.conf  ##配置实例   path: /data/mongodb/mongod2.log  ##日志文件位置   dbPath: /data/mongodb/mongo    ##数据位置   port: 27018      ##不同实例的端口不同

mkdir -p  /data/mongodb/  ##创建数据文件夹 cd /data/mongodb/ mkdir mongo  touch mongod2.log    ##创建日志文件 chmod 777 mongod2.log    ##给予日志文件权限

(3)启动第二个实例

mongod -f /etc/mongod2.conf  ##开启第二份实例 mongo --port 27018    ##进入数据库

2.基本操作

## 创建数据库 ,不存在会创建,不建立集合又会删除 > use mydb;  switched to db mydb

 ##创建集合 > db.createCollection('a') { "ok" : 1 }

 ## 在集合中插入数据 > db.a.insert({"id":1,"name":"zhangsan"}) WriteResult({ "nInserted" : 1 })

## 查看集合中的数据 > db.a.find()  { "_id" : ObjectId("5b4c54bc8a4352592ecc288f"), "id" : 1, "name" : "zhangsan" }

##查找指定记录并赋予别名a,查看属性类型 > b=db.a.findOne({"id":1}) {     "_id" : ObjectId("5b4c54bc8a4352592ecc288f"),     "id" : 1,     "name" : "zhangsan" } > typeof(b.id) number 

##更改数据 > db.a.update({"id":1},{$set:{"name":"tom"}})  WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) > db.a.find() { "_id" : ObjectId("5b4c54bc8a4352592ecc288f"), "id" : 1, "name" : "tom" }

##查看集合 > show collections  a

##删除集合 > db.a.drop()  true

##删除数据库 > db.dropDatabase() { "dropped" : "mydb", "ok" : 1 }

##复制数据库 > db.copyDatabase("mydb","mydb1")  { "ok" : 1 } > show dbs; admin  0.000GB config  0.000GB local  0.000GB mydb    0.000GB mydb1  0.000GB

3.导入导出数据 •mongoexport命令可以把一个collection导出成JSON格式或CSV格式的文件,可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。 •mongoimport命令可以把一个特定格式文件中的内容导入到指定的collection中。该工具可以导入SON格式或CSV格式的文件。

(1)创建100个数据

> use kgc; switched to db kgc > for(var i=1;i<=100;i )db.users.insert({"id":i,"name":"jack" i}) WriteResult({ "nInserted" : 1 }) > db.users.count() 100

(2)进行导入与导出操作

#导出操作 [root@localhost ~]# mongoexport -d kgc -c users -o /opt/users.json 2018-07-16T16:36:30.395 0800    connected to: localhost 2018-07-16T16:36:30.407 0800    exported 100 records

#查看导出的文件[root@localhost ~]# head -n 3 /opt/users.json {"_id":{"

#导入操作 root@localhost ~]# mongoimport -d kgc -c user1 --file /opt/users.json 2018-07-16T16:38:13.615 0800    connected to: localhost 2018-07-16T16:38:13.635 0800    imported 100 documents

#查看导入的数据集合 > use kgc; switched to db kgc > show collections user1 users > exit bye

#条件导出操作 [root@localhost ~]# mongoexport -d kgc -c user1 -q '{"id":{"$eq":10}}' -o /opt/top10.json 2018-07-16T16:40:28.912 0800    connected to: localhost 2018-07-16T16:40:28.915 0800    exported 1 record

•-d:指明数据库的名字 •-c:指明collection的名字 •-f :指明要导出那些列 •-o:指明要导出的文件名 •-q:指明导出数据的过滤条件

4.备份与恢复

(1)备份

在MongoDB中可以使用 mongodump 命令来备份数据,该命令可以导出所有数据到指定目录中。

[root@localhost ~]# mkdir /opt/backup #创建备份文件夹 [root@localhost ~]# mongodump -d kgc -o /opt/backup/ 2018-07-16T16:44:47.254 0800    writing kgc.user1 to 2018-07-16T16:44:47.254 0800    writing kgc.users to 2018-07-16T16:44:47.256 0800    done dumping kgc.user1 (100 documents) 2018-07-16T16:44:47.256 0800    done dumping kgc.users (100 documents)

(2)恢复

MongoDB使用mongorestore命令来恢复备份的数据

mongorestore -d kgc2 --dir=/backup/kgc  ##恢复

5. 克隆集合

在MongoDB中可以将数据库中的集合进行克隆。这里将kgc数据库中的user1集合克隆到另外一个实例。

(1)先查看MongoDB开启的实例

[root@localhost ~]# netstat -ntap | grep mongod tcp        0      0 0.0.0.0:27017          0.0.0.0:*              LISTEN      1121/mongod        tcp        0      0 0.0.0.0:27018          0.0.0.0:*              LISTEN      10145/mongod 

(2)进入第二个实例27018端口

[root@localhost ~]# mongo --port 27018    ##进入另一个实例 > db.runCommand({"cloneCollection":"kgc.user1","from":"192.168.113.175:27017"}) { "ok" : 1 } > show dbs admin  0.000GB config  0.000GB kgc    0.000GB local  0.000GB > use kgc switched to db kgc > show collections  #查看27018端口实例的集合 user1 ## 完成克隆

7.进程管理

管理员可以对MongoDB进程进行管理和控制。 查看当前正在运行的进程的命令为:db.currentOp()。 终止正在运行的高消耗资源的进程管理的进程命令为:db.killOp(opid)。

0 人点赞