mongodb部署与基本使用

本文档详细介绍了如何在Linux环境下部署MongoDB服务,包括安装、配置、启动与停止服务,以及设置别名。此外,还展示了MongoDB的基本使用,如管理数据库、集合、文档,以及数据类型的介绍。最后,探讨了数据的导出、导入、备份和恢复操作。

一、部署MongoDB服务
1、安装软件
mkdir /usr/local/mongodb
tar -xf mongodb-linux-x86_64-rhel70-3.6.3.tgz
cp -r mongodb-linux-x86_64-rhel70-3.6.3/bin/ /usr/local/mongodb/
cd /usr/local/mongodb/
2、创建工作目录
mkdir {etc,log}
mkdir -p data/db
3、创建服务的主配置文件
vim /usr/local/mongodb/etc/mongodb.conf
logpath=/usr/local/mongodb/log/mongodb.log
logappend=true # 追加的方式记录日志信息
dbpath=/usr/local/mongodb/data/db # 数据库目录
fork=true # 守护进程方式运行
:wq
4、启动服务
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/etc/mongodb.conf
5、查看服务信息
netstat -nutlp | grep 27017
ps -C mongod
6、停止服务
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/etc/mongodb.conf –shutdown
7、定义别名
alias mstart=’/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/etc/mongodb.conf’
alias mstop=’/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/etc/mongodb.conf –shutdown’
8、修改ip地址和端口
vim /usr/local/mongodb/etc/mongodb.conf
port=27050
bind_ip=192.168.4.50
:wq
mstop
mstart
netstat -nutlp | grep 27050
tcp 0 0 192.168.4.50:27050 0.0.0.0:* LISTEN 2567/mongod
/usr/local/mongodb/bin/mongo –host 192.168.4.50 –port 27050
二、MongoDB服务的基本使用
1、常用管理命令
1)库管理命令
库管理命令: 查看 创建 切换 删除
– show dbs 查看已有的库
– db 显示当前所在的库
– use 库名 切换库,若库不存在的话 自动延时创建库
– show collections 或 show tables 查看库下已有的集合
– db.dropDatabase() 删除当前所在的库

use bbsdb
switched to db bbsdb
db
bbsdb
show tables
2)集合(表)管理命令
集合管理命令:查看 创建 删除
– show collections 或 show tables # 查看集合
– db.集合名.drop() # 删除集合
– db.集合名.save({”,”}) # 创建集合,集合不存在时,创建并添加文档
db.user.save({name:”bob”,email:”plj@163.com”})
WriteResult({ “nInserted” : 1 })
db.user.save({name:”tom”,age:19,class:”nsd1805”})
WriteResult({ “nInserted” : 1 })
show tables
user
db.user.find()
{ “_id” : ObjectId(“5b84bf4f5a10a99cbe489f8a”), “name” : “bob”, “email” : “plj@163.com” }
{ “_id” : ObjectId(“5b84bf765a10a99cbe489f8b”), “name” : “tom”, “age” : 19, “class” : “nsd1805” }
db.user.drop()
true
show tables
show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
3)文档基本管理
• 文档管理命令: 查看 统计 添加 删除
– db.集合名.find() #把集合所有内容显示出来
– db.集合名.count() #统计集合中文档个数
– db.集合名.insert({“name”:”jim”})
– db.集合名.find({ 条件 })
db.user.find({name:”bob”})
{ “_id” : ObjectId(“5b84c1c75a10a99cbe489f8d”), “name” : “bob”, “email” : “plj@163.com” }
db.user.find({name:”bob”},{name:1})
{ “_id” : ObjectId(“5b84c1c75a10a99cbe489f8d”), “name” : “bob” }
– db.集合名.findOne() #返回一条文档
– db.集合名.remove({}) #删除所有文档
– db.集合名.remove({ 条件 }) #删除与条件匹配的所有文档
2、基本数据类型
1)字符string/布尔bool/空null
• 字符串 string
– UTF-8 字符串都可以表示为字符串类型的数据
– {name:” 张三”} 或 { school:“tarena”}
• 布尔 bool
– 布尔类型有两个值 true 和 false , {x:true}
• 空 null
– 用于表示空值或者不存在的字段, {x:null}
db.t1.save({name:”zhangcuishan”,marry:false,card:null})
2)数值 / 数组 array
• 数值
– shell 默认使用 64 为浮点型数值。 {x:3.14} 或 {x:3}。
– NumberInt (4 字节整数) {x:NumberInt(3)} //可以存带小数的,小数位不显示
– NumberLong (8 字节整数) {x:NumberLong(3)} //不可以存带小数的
• 数组 array
– 数据列表或数据集可以表示为数组
– {x:[“a“ ,“ b”,”c”]}
3)代码 / 日期 / 对象
• 代码
– 查询和文档中可以包括任何 JavaScript 代码
– {x: function( ){/* 代码 */}}
• 日期
– 日期被存储为自新纪元依赖经过的毫秒数,不存储时区
– {x:new Date( )}
• 对象
– 对象 id 是一个 12 字节的字符串,是文档的唯一标识
– {x: ObjectId() }
4)内嵌 / 正则表达式
• 内嵌
– 文档可以嵌套其他文档,被嵌套的文档作为值来处理
– {tarena: {address:“Beijing”,tel:“888888”,person:”hanshaoyun” }}
• 正则表达式
– 查询时,使用正则表达式作为限定条件
– {x:/ 正则表达式 /}
文档记录大于一条时不可以直接使用_ip:0,前面需要加条件
3、数据导出
• 语法格式 1
– #mongoexport [–host IP地址 –port 端口] -d 库名 -c 集合名 -f 字段名 1, 字段名 2 –type=csv > 目录名/文件名.csv
• 语法格式 2
– #mongoexport –host IP地址 –port 端口 -d 库名 -c 集合名 -q ‘{条件}’ -f 字段名 1 ,字段名 2 –type=csv > 目录名/文件名.csv //csv格式必须加-f
• 语法格式 3
mongoexport [–host IP 地址 –port 端口] -d 库名 -c 集合名 [ -q ‘{条件}’ –f 字段列表] –type=json > 目录名/文件名.json
mkdir /mbak
/usr/local/mongodb/bin/mongoexport –host 192.168.4.50 –port 27050 -d studb -c c2 –type=csv -f name,school > /mbak/1.csv
2018-08-28T15:01:05.749+0800 connected to: 192.168.4.50:27050
2018-08-28T15:01:05.750+0800 exported 9 records
cat /mbak/1.csv
/usr/local/mongodb/bin/mongoexport –host 192.168.4.50 –port 27050 -d studb -c c2 –type=json -q ‘{name:/^lucy.*/}’ -f name > /mbak/2.json
2018-08-28T15:07:00.169+0800 connected to: 192.168.4.50:27050
2018-08-28T15:07:00.170+0800 exported 1 record
cat 2.json
4、数据导入
/usr/local/mongodb/bin/mongoimport –host 192.168.4.50 –port 27050 -d gamedb -c reguser –type=json /mbak/1.json
2018-08-28T15:42:14.489+0800 connected to: 192.168.4.50:27050
2018-08-28T15:42:14.612+0800 imported 1 document
不存在表导入,创建新表,已存在表导入,追加导入
/usr/local/mongodb/bin/mongoimport –host 192.168.4.50 –port 27050 -d gamedb -c reguser –type=json –drop /mbak/1.json //加–drop覆盖导入
把系统用户信息存储到userdb库里的sys集合里
mkdir /mbak
echo ‘name,password,uid,gid,comment,homedir.shell’ > /mbak/passwd.csv
sed -i ‘$r /etc/password’ /mbak/passwd.csv
sed -i ‘s/:/,/g’ /mbak/passwd.csv
/usr/local/mongodb/bin/mongoimport –host 192.168.4.50 –port 27050 -d userdb -c sys –type=csv –headerline /mbak/passwd.csv
2018-08-28T16:18:22.650+0800 connected to: 192.168.4.50:27050
2018-08-28T16:18:22.802+0800 imported 41 documents
use userdb;
switched to db userdb
show tables;
sys
db.sys.find()
db.sys.count()

数据备份
/usr/local/mongodb/bin/mongodump –host 192.168.4.50 –port 27050 -d userdb -c sys -o /dbbak //dbbak不存在时会自动创建
/usr/local/mongodb/bin/bsondump /dbbak/userdb/sys.bson //查看备份数据
数据恢复
/usr/local/mongodb/bin/mongorestore –host 192.168.4.50 –port 2750 -d 数据库 -c 集合名 备份目录/文件名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值