目录
- 一、搭建MongoDB数据库
- 1.1 配置YUM源仓库
- 1.2 安装MongoDB
- 1.3 启动并查看服务
- 1.4 登录数据库
- 二、MongoDB多实例创建
- 2.1 创建多实例配置文件,并开启服务
- 2.2 登录数据库
- 三、基本操作
- 3.1 创建、插入、更改、删除、查看数据
- 3.2 导入数据(数据库中)
- 3.3 导出操作
- 3.4 导入操作
- 3.5 条件(导出)操作
- 3.6 备份与恢复
- 3.7 复制数据库
- 3.8 克隆集合
- 3.9 创建管理用户
- 3.10 进程管理
一、搭建MongoDB数据库
介绍:
■关系型数据库和非关系型数据库:
●对于关系型的数据库,存储数据之前,必须先建表建库,随着数据的复杂度越来越高,所建表的数量也就越来越多,但是非关系型数据库却不需要如此复杂;
●关系型数据库很强大,但是它并不能很好的应付所有的应用场景;
MySQL的扩展性差;大数据下IO压力大;表结构更改困难。
●mongodb 易扩展,大数据量高性能,灵活的数据模型,高可用。
■mongodb优势:
●易扩展性:nosql数据库的种类繁多;共同的特点就是去掉了关系型数据库的关系型特性;数据之间没有关系,容易扩展。
●大数据。高性能:nosql都具有非常高的读写性能,尤其在大数据量下,同样表现优秀,得益于它的无关系性,数据库结构简单;
●灵活的数据模型:不需要为事先存储的数据建立字段,随时可以存储自定义格式的数据,在关系型数据库中,增删是一件很麻烦的事,如果是一个非常大的数据量的表,增加字段实现困难。
【实验环境】
关闭防火墙、关闭核心防护,配置成能上网的环境。
1.1 配置YUM源仓库
[root@localhost ~]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# mkdir backup
[root@localhost yum.repos.d]# mv C backup
[root@localhost yum.repos.d]# vim mongodb.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
[root@localhost yum.repos.d]# yum list //加载yum仓库
1.2 安装MongoDB
[root@localhost yum.repos.d]# yum -y install mongodb-org
[root@localhost yum.repos.d]# vim /etc/mongod.conf
bindIp: 0.0.0.0 //监听地址
port: 27017 //监听端口
1.3 启动并查看服务
[root@localhost yum.repos.d]# systemctl start mongod
[root@localhost yum.repos.d]# netstat -anpt |grep 27017
1.4 登录数据库
[root@localhost yum.repos.d]# mongo
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
> quit
二、MongoDB多实例创建
2.1 创建多实例配置文件,并开启服务
*[root@localhost ~]# mkdir -p /data/mongodb/mongodb2 //创建数据目录
[root@localhost ~]# cd /data/mongodb/
[root@localhost mongodb]# ls
[root@localhost mongodb]# mkdir logs
[root@localhost mongodb]# touch logs/mongodb2.log //创建日志文件
[root@localhost mongodb]# cd logs/
[root@localhost logs]# chmod 777 .log //赋予权限
[root@localhost logs]# cd /etc
[root@localhost etc]# cp -p mongod.conf mongod2.conf
[root@localhost etc]# vim mongod2.conf
修改以下内容:
path: /data/mongodb/mongodb2.log
dbPath: /data/mongodb/mongodb2
port: 27018
[root@localhost etc]# mongod -f /etc/mongod2.conf //开启
[root@localhost etc]# netstat -anpt
//发现27018端口开启
2.2 登录数据库
[root@localhost etc]# mongo --port 27018 //进入数据库
> show dbs //查看文件
> db.version() //查看版本
3.6.20
三、基本操作
3.1 创建、插入、更改、删除、查看数据
> use school; //不存在会创建,不建立集合又会删除
> db.createCollection('info') { "ok" : 1 }
> show collections
> show tables
info
> db.info.insert({"id":1,"name":"zhangsan"})
WriteResult({ "nInserted" : 1 })
> db.info.insert({"id":2,"name":"lisi","score":89,"add":"nj","hobby":["game","talk","play"]})
WriteResult({ "nInserted" : 1 })
> db.info.find()
{ "_id" : ObjectId("5fa3a6854c46b180208139c6"), "id" : 1, "name" : "zhangsan" }
{ "_id" : ObjectId("5fa3aab34c46b180208139c8"), "id" : 2, "name" : "lisi", "score" : 89, "add" : "nj", "hobby" : [ "game", "talk", "play" ] }
> for(var i=3;i<=20;i++)db.info.insert({"id":i,"name":"jack"+i})
> db.info.findOne({"id":10})
> a=db.info.findOne({"id":10}) //查找指定记录并赋予别名a
> typeof(a.id) //查看属性类型
number
> typeof(a.name)
string
> typeof(a.hobby)
object
> db.info.update({"id":10},{$set:{"name":"tom"}}) //更改
> show collections //查看集合
> show tables //查看集合
info
> db.info.drop() //删除集合
> db.dropDatabase() //删除数据库
3.2 导入数据(数据库中)
> for(var i=3;i<=20;i++)db.info.insert({"id":i,"name":"jack"+i})
> db.info.count() //显示
20
3.3 导出操作
[root@localhost ~]# mongoexport -d school -c info -o /opt/school.json
[root@localhost ~]# cd /opt
[root@localhost opt]# ls
rh school.json
3.4 导入操作
[root@localhost opt]# mongoimport -d school -c test --file /opt/school.json
[root@localhost opt]# mongo
> use school
switched to db school
> show tables
info
test
3.5 条件(导出)操作
[root@localhost opt]# mongoexport -d school -c info -q ‘{“id”:{"$gt":10}}’ -o /opt/top.json
//-d:指定数据库;-c:指定集合;-o:output,指定导出路径
[root@localhost opt]# ls
rh school.json top.json
3.6 备份与恢复
[root@localhost ~]# mkdir /backup
[root@localhost ~]# mongodump -d school -o /backup/ //备份
[root@localhost ~]# cd /backup
[root@localhost backup]# cd school
[root@localhost backup]# ls
info.bson info.metadata.json test.bson test.metadata.json
//bson类型
[root@localhost backup]# mongorestore -d myschool --dir=/backup/school //恢复,数据库不在可以自动创建
[root@localhost backup]# mongo //进数据库
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
myschool 0.000GB
school 0.000GB
> use myschool
> show tables
info
test
> db.info.find()
3.7 复制数据库
创建:
> use school
> for(var i=1;i<=100;i++)db.users.insert({“id”:i,“name”:“jack”+i})
> show collections
> show tables
info
test
users
> db.users.find()
复制:
> db.copyDatabase(“school”,“share”)
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
myschool 0.000GB
school 0.000GB
share 0.000GB
> use share
> show tables
info
test
users
> db.users.find()
3.8 克隆集合
[root@localhost backup]# mongo --port 27018
> db.runCommand({“cloneCollection”:“school.users”,“from”:“20.0.0.22:27017”})
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
school 0.000GB
> use school
> show tables
users
> db.users.find()
3.9 创建管理用户
> use admin
> db.createUser({"user":"root","pwd":"123","roles":["root"]})
> db.auth("root","123")
1
3.10 进程管理
> db.currentOp()
。。。。。。。。省略。。。。。。。
"opid" : 340,
> db.killOp(340)