MongoDB服务搭建
介绍:介于关系数据库和非关系数据库之间的产品,基于分布式文件存储的数据库,将数据存储位一个文档,数据结构由键值对组成(key–value);支持丰富的查询表达式,可以设置任何属性的索引,支持副本集,分片。
- 搭建MDB服务器
1、装包
]# tar -xzf /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/
]# mkdir -p etc log data/db ##必须要手动创建的目录
]# ls
bin data etc log
2、创建配置文件
]# vim /usr/local/mongodb/etc/mongodb.conf
logpath=/usr/local/mongodb/log/mongodb.log ##日志路径
logappend=true ##采用追加写入的方式
dbpath=/usr/local/mongodb/data/db ##数据库目录
fork=true ##守护进程方式运行
bind_ip=ip地址 ##指定服务使用的ip,默认为127.0.0.1,仅限本机使用
port=端口号 ##指定服务使用的端口号
3、起服(起服有问题检查创建的目录是否正确)
]#/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/etc/mongodb.conf
]# vim /etc/bashrc ##可以使用别名设置
alias mongodown='mongod --shutdown -f /usr/local/mongodb/etc/mongodb.conf'
alias mongoup='mongod -f /usr/local/mongodb/etc/mongodb.conf'
]# mongodown ##停止服务
]# mongod -h ##查看选项帮助
4、连接服务(本地连接,默认没有密码)
]# ln -s /usr/local/mongodb/bin/mongo /sbin/
]# mongo -host 192.168.4.51
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
......
>show dbs ##显示已有库
admin 0.000GB
config 0.000GB
local 0.000GB
>exit
Bye
- MongoDB基本使用
1、数据库管理
命令格式:
show dbs ##查看已有的库
db ##显示当前所在的库
use 库名 ##库名 切换库,若库不存在延时创建库
db.dropDatabase() ##删当前所在的库
2、集合管理
命令格式:
show collections 或 show tables ##查看库下已有集合
db.集合名.drop() ##删除集合
db.集合名.save({'',''}) ##创建集合,集合不存在时,创建并添加文档
3、文档管理
命令格式:
db.集合名.find() ##显示表中所有内容
db.集合名. count() ##统计集合中有几条记录
db.集合名.insert({name:”jim”,age:60}) ##插入记录
db.集合名.find(条件) ##显示集合中满足条件的记录
db.集合名.findOne() ##返回查询一条文档
db.集合名.remove({}) ##删除所有文档
db.集合名.remove({条件}) ##删除与条件匹配的所有文档
4、基本数据类型
1)null:用于表示空值或者不存在的字段,{“x”:null} 2)布尔值:布尔类型有两个值true和false,{“x”:true}
3)数值:shell默认使用64为浮点型数值,既可以存整数也可以存小数,{“x”:3.14}或{“x”:3};对于整型值,可以使用NumberInt(4字节符号整数,存小数不报错但不存
小数位)或NumberLong(8字节符号整数,存小数会报错),
{“x”:NumberInt(“3”)}{“x”:NumberLong(“3”)}
4)字符串:UTF-8字符串都可以表示为字符串类型的数据,{name:“呵 呵”}
5)日期:日期被存储为自新纪元以来经过的毫秒数,不存储时区,{“x”:new Date()}
6)正则表达式:查询时,使用正则表达式作为限定条件,{“x”:/正则表达式/}
7)数组array:数据列表或数据集可以表示为数组,{“x”: [“a“,“b”,”c”]},一个字段有多个值
8)内嵌文档:文档可以嵌套其他文档,被嵌套的文档作为值来处理,{“x”:{“y”:3 }}
9)对象id:对象id是一个12字节的字符串,是系统自动生成的文档的唯一标识,{“x”: ObjectId() }
10)二进制数据:二进制数据是一个任意字节的字符串。它不能直接在shell中使用。如果要将非utf-字符保存到数据库中,二进制数据是唯一的方式。
11)代码:查询和文档中可以包括任何JavaScript代码,{“x”:function(){/…/}}
三、数据导入导出
数据导出
语法一:/usr/local/mongodb/bin/mongoexport --host 主机ip --port 端口 -d 库名 -c 集合名 -f 字段名1,字段名2 --type=csv > 目录名/文件名.csv
语法二:/usr/local/mongodb/bin/mongoexport --host 主机ip --port 端口 -d 库名 -c 集合名 -q ‘{条件}’ -f 字段名1,字段名2 --type=csv > 目录名/文件名.csv
注意:导出为csv格式必须使用-f指定字段名列表
语法三:/usr/local/mongodb/bin/mongoexport --host 主机ip --port 端口-d 库名 -c 集合名 [-q ‘{条件}’ -f 字段名] --type=json > 目录名/文件名.json
注意:导出为json格式字段名可以省略
数据导入
语法一:mongoimport -host ip地址 --port 端口 -d 库名 -c 集合名 --type=json 目录名/文件名.json
语法二:mongoimport -host ip地址 --port 端口 -d 库名 -c 集合名 --type=csv [--headerline] [--drop] 目录名/文件名.csv(不指定字段名则需要加--headerline)
注意:导入数据时,若库和集合不存在,则先创建库和集合后再导入数据;
--------若库和集合已存在,则以追加的方式导入数据到集合里;
--------默认追加导入,若使用–drop选项可以删除原数据后导入新数据,–headerline 忽略标题
四、数据备份恢复
数据备份
mongodump [–host ip --port 端口] #备份数据所有库到当前目录下的dump目录下
]#mongodump --host 192.168.4.51 --port 27017
mongodump [–host ip --port 端口] -d 数据库名 -c 集合名 -o 目录 #指定库和目录
]#mongodump --host 192.168.4.51 --port 27017 -d st -c pa -o /bak
bsondump 文件名 ##查看备份文件内容
]#bsondump /bak/st/pa.bson
数据恢复
mongorestore --host ip地址 --port 端口 -d 数据库名 [-c 集合名] 备份目录名
]#mongorestore --host 192.168.4.51 --port 27017 -d st -c pa
/bak/st/pa.bson
推荐阅读
-
Oracle 11g服务器与客户端卸载、安装全过程
-
hadoop配置历史服务器&&配置日志聚集
-
C#实现WebSocket协议客户端和服务器websocket sharp组件实例解析
-
PHP使用NuSOAP调用Web服务的方法
-
安装sql server2008后再安装sql 2005找不到本地服务器的解决方法
-
FtpHelper实现ftp服务器文件读写操作(C#)
-
win2008 r2 安装sql server 2005/2008 无法连接服务器解决方法
-
ASP.NET2.0服务器控件之类型转换器
-
详解服务端预渲染之Nuxt(介绍篇)
-
VS2017 Cordova Ionic2 移动开发环境搭建教程