目录
一、概述
二、安装
三、目录结构
四、MongoDB数据库操作
五、MongoDB数据库备份
一、概述
mongodb是一个nosql数据库,它有高性能、无模式、文档型的特点。是nosql数据库中功能最丰富,最像关系数据库的。数据库格式为BSON
相关概念
实例:系统上运行的mongodb的进程,类似于mysql实例;
库:每个数据库都是独立的,有自己的用户,权限,独立存储集合,类似于mysql的库;
集合:由一组文档构成,类似于mysql的表;
文档:mongodb数据库的最小数据集,是由多个键值对有序组合的数据单元,类似于mysql的数据记录;
主键:唯一标识一行数据
特性:
1、面向集合文档存储,适合存储json形式的数据;
2、格式自由,数据格式不固定,数据结构发生变更的同时不会影响程序运行;
3、面向对象的sql查询语句,基本涵盖关系型数据库的所有查询语句;
4、有索引的支持,查询效率更快;
5、支持复制和自动故障转移;
6、可以使用分片集群提升查询性能
应用场景:游戏、物流、社交、物联网、视频直播、大数据
二、安装
创建本地yum源
cd /etc/yum.repos.d/
vim mongodb.repo
yum install -y mongodb-org
服务名:mongod
启动服务:systemctl start mongod
进入数据库:mongo
三、目录结构
1)rpm -ql mongodb-org-server
/etc/mongod.conf 主配置文件
port: 27017 监听端口号
bindIp: 127.0.0.1 监听地址
/run/mongodb PID文件
/usr/bin/mongod 启动命令
/var/lib/mongo 存储数据文件
/var/log/mongodb 日志
2)rpm -ql mongodb-org-shell
/usr/bin/mongo 客户端命令
3)rpm -ql mongodb-org-tools
/usr/bin/mongodump 备份数据库
/usr/bin/mongoexport 备份文档
/usr/bin/mongoimport 恢复文档
/usr/bin/mongorestore 恢复数据库
四、MongoDB数据库操作
一)库操作
查看数据库
show databases
show dbs
显示当前所在数据库:db
切换数据库:use dbName
数据库创建:
隐式创建,不用主动创建,使用use newDB,会自动创建不存在的数据库;只有在库中创建集合后才会保存,并使用show dbs查看到
删除数据库:
use dbName
db.dropdatabase()
二)文档操作
查看集合:show tables
创建集合:db.createCollection("test")
删除集合:db.需要删除的集合名称.drop()
插入数据(文档):
db.集合名称.insert({key:value}) 单行
db.集合名称.insertmany([{key:value},{key:value},{key:value}]) 多行
mongodb默认数字的数据类型float浮点型,若要改变为整型:NumberInt(数字)
查询数据
全集合查询:
db.集合名称.find({})
db.集合名称.find()
条件查询
db.集合名称.find({查询条件1key:value,查询条件2,...},{key1:1|0,key2:1|0,...}) key:1 显示,key:0 不显示当显示的key只有一个时,key:1 只显示该key及对应value,key:0 显示除了该key之外其他所有keyvalue
查询集合中有多少文档:db.集合名称.count()
删除数据:
全文删除 db.集合名称.remove({})
条件删除 db.集合名称.remove({key:value})
更新数据 db.集合名称.update({条件}, {$set:{更改的值}})
所有满足条件的文档都进行更新db.集合名称.update({条件},{$set:{更改的值}},{multi:true})
未更新
更新
更新文档进行数值递增db.集合名称.update({条件},{$inc:{更改的数值}})
未更新
更新
五、MongoDB数据库备份
(一)备份命令
mongodump
选项:
-h=hostname:port
-u=<username>
-p=<password>
--authenticationDatabase=<dbname>
-d=<database>
-o=<path>
语法:mongodump -d dbName -h hostName:port -u userName -p Password -o backupDirectory
mongoexport
选项:
-h=hostname:port
-u=<username>
-p=<password>
--authenticationDatabase=<dbname>
-d=<database>
-o=<path>
语法:mongoexport -d dbName -c tableName -h hostName:port -u userName -p Password -o backupDirectory/jsonFile.json
(二)恢复命令
mongorestore
选项:
-h=hostname:port
-u=<username>
-p=<password>
--authenticationDatabase=<dbname>
-d=<database>
--drop 当目标数据库中存在同名集合则删除再恢复
语法:mongorestore -h hostName -u username -p password -d dbName -c tableName bakcupDirector/bsonFile
mongoimport
选项:
-h=hostname:port
-u=<username>
-p=<password>
--authenticationDatabase=<dbname>
-d=<database>
--drop 当目标数据库中存在同名集合则删除再恢复
语法:mongoimport -d dbName -c tableName -h hostName:port -u userName -p Password backupDirectory/jsonFile.json