一、搭建mongodb数据库
systemctl stop firewalld
setenforce 0
配置YUM仓库
vim mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
yum list
安装MongoDB
yum -y install mongodb-org
vim /etc/mongod.conf
net:
port: 27017 #监听端口
bindIp: 0.0.0.0 #监听地址
systemctl start mongod.service
netstat -natp | grep 27017
# 进入数据库
mongo
# 查看所有数据库
show dbs
exit
# 生成第二个数据库实例
创建第二个实例
cp -p mongod.conf mongod2.conf
vim /etc/mongod2.conf
systemLog:
destination: file
logAppend: true
path: /data/mongodb/mongod2.log #修改,后期创建目录
storage:
dbPath: /data/mongodb/mongo #修改,后期创建目录
journal:
enabled: true
net:
port: 27018 #端口修改,避免端口冲突
bindIp: 0.0.0.0
mkdir -p /data/mongodb
cd /data/mongodb
mkdir mongo
touch mongod2.log
chmod 777 mongod2.log
mongod -f /etc/mongod2.conf # 启动第二个的命令
netstat -natp | grep mongod
mongo --port 27018
# 版本查询
> db.version()
4.0.23
二、基本操作(数据放在集合里,集合放在数据库里)
use mydb #不存在会创建,不建立集合又会删除
db.createCollection('info') #创建集合
show collections或者show tables #查看集合
db.info.insert({"id":1,"name":"zhangsan","score":88,"hobby":["game","talk","sport"]})
for (var i =3;i<=100;i++)db.info.insert({"id":i,"name":"tom"+i}) #+号是字符串连接符。
db.info.find() #查看info集合里的数据,()里可以增加查找的条件
db.info.findOne({"id":2}) #查找指定记录
a=db.info.findOne({"id":2}) #查找指定记录并定义别名
typeof(a.id) #查看数值类型
db.info.update({"id":10},{$set:{"name":"jack"}}) #更改id为10的,名字改为jack $set:替换
db.createCollection('test')
db.test.drop() #删除集合
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
mydb 0.000GB
> use test
switched to db test
> db.createCollection('a')
{ "ok" : 1 }
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
mydb 0.000GB
test 0.000GB
> use test #先use库
switched to db test
> db.dropDatabase() #删除库
{ "dropped" : "test", "ok" : 1 }
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
mydb 0.000GB
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
mydb 0.000GB
> use mydb
switched to db mydb
> show tables
info
> db.info.count() #统计集合里的数据数量
100
数据的导出
mongoexport -d mydb -c info -o /opt/info.json #-d 指定数据库 -c 指定集合 -o 指定导出的位置,注意文件格式为.json
数据按条件导出
mongoexport -d mydb -c info -q '{"id":{"$eq":10}}' -o /opt/top10.json # -q 指基于条件 $eq是等于
数据的导入
mongoimport -d mydb -c info1 --file info.json #--file 如果使用命令与要导入的文件在同目录下可使用相对路径,反之需使用绝对路径
备份
mkdir /backup
mongodump -d mydb -o /backup #mongodump 备份
恢复
mongorestore -d qq --dir=/backup/mydb
复制数据库
db.copyDatabase("mydb","mydb2")
克隆集合
mongo --port 27018
db.runCommand({"cloneCollection":"kgc.users","from":"192.168.241.9:27017"})
创建管理用户
use admin
db.createUser({"user":"root","pwd":"123","roles":["root"]})
db.auth("root":"123")
进程管理
db.currentOp()
显示
"opid" : 1676,
db.killOp(1676)
后续会持续更新“芒果数据库”