标签:目录 yum json格式 可扩展 配置文件 emc _id 节点 恢复
一、MongoDB简介MongoDB是一款跨平台、面向文档的数据库,可以实现高性能,高可用性,并且能够轻松扩展。MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB可以为Web应用提供可扩展的高性能数据存储解决方案。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB主要特点
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的基本操作
cp -p /etc/mongod.conf /etc/mongod2.conf
## 复制一份配置文件给第二个实例
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 ##给予日志文件权限
mongod -f /etc/mongod2.conf ##开启第二份实例
mongo --port 27018 ##进入数据库
## 创建数据库 ,不存在会创建,不建立集合又会删除
> 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
> 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
#导出操作
[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":{"$oid":"5b4c589f43705395b9afe284"},"id":1.0,"name":"jack1"}
{"_id":{"$oid":"5b4c589f43705395b9afe285"},"id":2.0,"name":"jack2"}
{"_id":{"$oid":"5b4c589f43705395b9afe286"},"id":3.0,"name":"jack3"}```
#导入操作
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:指明导出数据的过滤条件
在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)
MongoDB使用mongorestore命令来恢复备份的数据
mongorestore -d kgc2 --dir=/backup/kgc ##恢复
在MongoDB中可以将数据库中的集合进行克隆。这里将kgc数据库中的user1集合克隆到另外一个实例。
[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
[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
## 完成克隆
管理员可以对MongoDB进程进行管理和控制。
查看当前正在运行的进程的命令为:db.currentOp()。
终止正在运行的高消耗资源的进程管理的进程命令为:db.killOp(opid)。
标签:目录 yum json格式 可扩展 配置文件 emc _id 节点 恢复
原文地址:http://blog.51cto.com/11134648/2145032