MongoDB基本操作、备份还原及用户管理
发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,今日趁周末得空,将近日在学习的MongoDB数据库常用命令作以下整理,方便工作中查看MongoDB的逻辑结构主要由文档、集合和数据库三部分组成。其中文档是MongoDB的核心概念,它是MongoDB逻
千家信息网最后更新 2024年11月25日MongoDB基本操作、备份还原及用户管理
今日趁周末得空,将近日在学习的MongoDB数据库常用命令作以下整理,方便工作中查看
MongoDB的逻辑结构主要由文档、集合和数据库三部分组成。其中文档是MongoDB的核心概念,它是MongoDB逻辑存储的最小单元,相当于关系型数据库中的一行记录,多个文档组成集合,集合相当于关系型数据库中的表,多个集合组成数据库。
SQL术语 | 说明 | MongoDB术语 | 说明 |
---|---|---|---|
database | 数据库 | database | 数据库 |
table | 数据库表 | collection | 集合 |
row | 记录 | document | 行域 |
column | 字段 | field | 域 |
index | index | 索引 | |
table joins | 表连接 | 不支持 | |
primary key | 主键 | primary key | 自动将_id字段设置为主键 |
一个MongoDB中可以创建多个数据库,默认的数据库为test。
默认数据库:
- admin:从权限的角度来看,这是root数据库。将一个用户添加到这个数据库中,该用户将自动继承所有数据库的权限;
- local:这个数据永远不会被复制,可用来存储限于本地单台服务器的任意集合;
- config:当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
MongoDB 登录、退出
#本地登录(默认实例端口号为:--port=27017,可以不写)> mongo#登录远程主机的实例> mongo --host 192.168.1.2 --port =27017#退出MongoDB> exit
数据库
#创建数据库(如果数据库不存在,则创建数据库,否则切换到指定数据库)> use school#查看所有数据库> show dbs#删除school数据库> use school> db.dropDatabase()#显示数据库操作命令> db.help()
集合
集合就是MongoDB文档组,类似于关系数据库管理系统中的把表格,集合存于数据库中,集合没有固定的结构,这样子集合中可以存放不同格式和类型的表格。
#创建info集合> db.createcollection('info')#查看集合方法一:> show tabels方法二:> show colletctions#显示info集合操作命令> db.info.help()
文档(增、删、改、查)
文档是一个键值对(BSON),不需要设置相同的字段,并且相同的字段不需要相同的数据类型。
1. 插入文档
#插入一条记录> db.info.insert({"id":1,"score":88,"address":"金川校区","hobby":["game","talk","sport"]})#向指定集合中插入一条文档数据> db.collection.insertOne()#向指定集合中插入多条文档数据> db.collection.insertMany()#通过循环批量插入数据> for(var i=1;i<100;i++)db.info.insert({"id":i,"name":"jack"+i})
2. 删除文档
#删除info集合中id=1的文档> db.info.remove({"id":"1"})
3. 修改文档
#修改info集合id=1的name值为"zhangsan"文档db.info.update({"id":"1"},{$set:{"name":"zhangsan"}})
4. 查询文档
#查询info集合所有文档> db.info.find()#查询info集合id为1的文档> db.info.findOne({id:1})#统计记录数> db.info.count()
备份与恢复数据库
- 通过mongoexport和mongoimport目录来导出导入数据;
- 导出数据文件的格式为:JSON格式或CSV格式;
参数说明:
- -d:数据库的名称
- -c:collection的名称
- -f:要导出哪些列
- -o:要导出的文件名
- -q:到导出数据的过滤条件
#备份本地school数据库> [root@localhost ~]# mkdir /backup[root@localhost ~]# mongodump -d school -o /backup/2018-07-14T03:36:44.427-0400 writing school.info to2018-07-14T03:36:44.429-0400 done dumping school.info (99 documents)#恢复本地school数据库至数据库abc中> [root@localhost ~]# mongorestore -d abc --dir=/backup/school2018-07-14T03:37:40.174-0400 the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead2018-07-14T03:37:40.174-0400 building a list of collections to restore from /backup/school dir2018-07-14T03:37:40.175-0400 reading metadata for abc.info from /backup/school/info.metadata.json2018-07-14T03:37:40.187-0400 restoring abc.info from /backup/school/info.bson2018-07-14T03:37:40.208-0400 no indexes to restore2018-07-14T03:37:40.208-0400 finished restoring abc.info (99 documents)2018-07-14T03:37:40.209-0400 done#导出本机school数据库info集合> [root@localhost ~]# mongoexport -d school -c info -o /backup/info.json2018-07-14T03:44:41.610-0400 connected to: localhost2018-07-14T03:44:41.613-0400 exported 99 records#导入备份数据至本机school数据库user集合> [root@localhost ~]# mongoimport -d school -c user --file /backup/info.json2018-07-14T03:45:09.300-0400 connected to: localhost2018-07-14T03:45:09.330-0400 imported 99 documents#导出本机school数据库user1集合id=10的数据> [root@localhost ~]# mongoexport -d school -c user -q '{"id":{"$lt":10}}' -o /backup/top10.json2018-07-14T03:51:23.968-0400 connected to: localhost2018-07-14T03:51:23.969-0400 exported 9 records
复制数据库
> show dbs> db.copyDatabase("school","school_1")![image](https://note.youdao.com/favicon.ico)
克隆集合
#启用如下2个实例> [root@localhost ~]# netstat -tunlp | grep mongodtcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 61249/mongodtcp 0 0 0.0.0.0:27018 0.0.0.0:* LISTEN 61212/mongod#登录端口号为27018的实例> mongo --port 27018#查询数据库> show dbsadmin 0.000GBconfig 0.000GBlocal 0.000GB#克隆端口号为27017实例的school数据库的info表至本实例数据库中> db.runCommand({"cloneCollection":"school.info","from":"192.168.100.100:27017"})![image](https://note.youdao.com/favicon.ico)
用户授权(认证登录)
#登录mongodbmongo#在admin数据库创建新用户root:123123> use admin> db.createUser({"user":"root","pwd":"123123","roles":["root"]})Successfully added user: { "user" : "root", "roles" : [ "root" ] }#退出> exit#关闭mongodb服务mongod -f /data/conf/mongodb1.conf --shutdown#带认证参数方式启动mongodb服务mongod -f /data/conf/mongodb1.conf --auth#登录mongodb数据库mongo#查询数据库show dbs> 不显示内容,这里要先授权认证后才能执行操作> use admin#使用授权root用户验证> db.auth("root":"123123")#再次查询,已经可以查询数据了> show dbsadmin 0.000GBconfig 0.000GBlocal 0.000GBschool 0.000GB#退出> exit
进程管理
1. 查看当前正在运行的进程的命令:db.currentOp() ------> 获取opid进程号2. 终止正在运行的高消耗资源的进程命令:db.killOP(opid)
更详细的内容,请多参考 MongoDB在线帮助文档
数据
数据库
文档
查询
登录
实例
用户
命令
字段
格式
进程
备份
相同
口号
多个
本机
服务
认证
管理
内容
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
四级网络安全考那两本书
基于数据库的新技术 新应用
南沙可靠的网络安全服务
宁晋软件开发商
佛山博砾软件开发有限公司
58新番网为什么连不上服务器
什么是数据库新技术
惠普服务器一直关机
网络安全法电话
h5通过java连接数据库
软件开发外包验收单
计复机网络安全管理创新研究
越南 网络安全法
公安机关开展信息网络安全审核
广东软件开发公司
金州电力关于网络安全宣传周
北京信息化软件开发设计价格走势
缓存服务器异常怎么处理
厦大研究生网络安全
酒店软件开发三方协议范本
网络安全相关案例的心得体会
什么样的云数据库安全
vb新增sql数据库
非结构化数据库设计
数据库管理视频教程
怎么导出通快模具数据库
公开课软件开发与技术
开放的无线网状网络技术
数据库中序列化的作用
网络安全图片大全卡通