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()

备份与恢复数据库

  1. 通过mongoexport和mongoimport目录来导出导入数据;
  2. 导出数据文件的格式为:JSON格式或CSV格式;

参数说明:

  • -d:数据库的名称
  • -c:collection的名称
  • -f:要导出哪些列
  • -o:要导出的文件名
  • -q:到导出数据的过滤条件
#备份本地school数据库
> [[email protected] ~]# mkdir /backup
[[email protected] ~]# mongodump -d school -o /backup/
2018-07-14T03:36:44.427-0400    writing school.info to
2018-07-14T03:36:44.429-0400    done dumping school.info (99 documents)

#恢复本地school数据库至数据库abc中
> [[email protected] ~]# mongorestore -d abc --dir=/backup/school
2018-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 instead
2018-07-14T03:37:40.174-0400    building a list of collections to restore from /backup/school dir
2018-07-14T03:37:40.175-0400    reading metadata for abc.info from /backup/school/info.metadata.json
2018-07-14T03:37:40.187-0400    restoring abc.info from /backup/school/info.bson
2018-07-14T03:37:40.208-0400    no indexes to restore
2018-07-14T03:37:40.208-0400    finished restoring abc.info (99 documents)
2018-07-14T03:37:40.209-0400    done

#导出本机school数据库info集合
> [[email protected] ~]# mongoexport -d school -c info -o /backup/info.json
2018-07-14T03:44:41.610-0400    connected to: localhost
2018-07-14T03:44:41.613-0400    exported 99 records

#导入备份数据至本机school数据库user集合
> [[email protected] ~]# mongoimport -d school -c user --file /backup/info.json
2018-07-14T03:45:09.300-0400    connected to: localhost
2018-07-14T03:45:09.330-0400    imported 99 documents

#导出本机school数据库user1集合id=10的数据
> [[email protected] ~]# mongoexport -d school -c user -q ‘{"id":{"$lt":10}}‘ -o /backup/top10.json
2018-07-14T03:51:23.968-0400    connected to: localhost
2018-07-14T03:51:23.969-0400    exported 9 records

复制数据库

> show dbs
> db.copyDatabase("school","school_1")

![image](https://note.youdao.com/favicon.ico)

克隆集合

#启用如下2个实例
> [[email protected] ~]# netstat  -tunlp | grep mongod
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      61249/mongod
tcp        0      0 0.0.0.0:27018           0.0.0.0:*               LISTEN      61212/mongod

#登录端口号为27018的实例
> mongo --port 27018

#查询数据库
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

#克隆端口号为27017实例的school数据库的info表至本实例数据库中
> db.runCommand({"cloneCollection":"school.info","from":"192.168.100.100:27017"})

![image](https://note.youdao.com/favicon.ico)

用户授权(认证登录)

#登录mongodb
mongo

#在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 dbs
admin   0.000GB
config  0.000GB
local   0.000GB
school  0.000GB

#退出
> exit

进程管理

1. 查看当前正在运行的进程的命令:db.currentOp() ------> 获取opid进程号
2. 终止正在运行的高消耗资源的进程命令:db.killOP(opid)

更详细的内容,请多参考 MongoDB在线帮助文档

原文地址:http://blog.51cto.com/10316297/2142660

时间: 2024-11-11 13:55:51

MongoDB基本操作、备份还原及用户管理的相关文章

阿里云mongodb物理备份还原

阿里云的文档地址 : https://help.aliyun.com/document_detail/62408.html?spm=a2c4g.11186623.6.634.fwCNio https://help.aliyun.com/document_detail/58329.html 阿里云要求mongo版本3.2以上 我在本地windows搞了一顿没有搞ok(关键是现在的都是ssl版本的mongo启动各种报错而且没有资料查), 遂找了台linux服务器记录如下 wget https://f

4、MongoDB学习之备份还原

一.MongoDB备份 1.MongoDB整库备份 备份数据使用下面的命令 mongodump -h dbhost -d dbname -o dbdirectory 备份user数据库 [[email protected] bin]# ./mongodump -h127.0.0.1 -d user -o /home/ [[email protected] bin]# ls /home/user/ b3.bson  b3.metadata.json  c1.bson  c1.metadata.js

MongoDB快速入门学习笔记7 MongoDB的用户管理操作

1.修改启动MongoDB时要求用户验证加参数 --auth 即可.现在我们把MongoDB服务删除,再重新添加服务 mongod --dbpath "D:\work\MongoDB\data" --logpath "D:\work\MongoDB\log\mongodb.log" --install --serviceName "MongoDB" --auth 2.创建用户,并使用创建的用户登录打开shell操作界面,默认test数据,再查看所

mongodb 数据库操作--备份 还原 导出 导入

一,mongodump备份数据库 1,常用命令格 1 mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径 如果没有用户谁,可以去掉-u和-p. 如果导出本机的数据库,可以去掉-h. 如果是默认端口,可以去掉--port. 如果想导出所有数据库,可以去掉-d. 2,导出所有数据库 1 2 3 4 5 6 7 8 9 10 [[email protected] mongodb]# mongodump -h 127.0.0.1 -o /hom

mongodb 备份 还原 导出 导入

张映 发表于 2013-12-03 分类目录: nosql mongodb数据备份和还原主要分为二种,一种是针对于库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoimport. 一,mongodump备份数据库 1,常用命令格 mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径 如果没有用户谁,可以去掉-u和-p.如果导出本机的数据库,可以去掉-h.如果是默认端口,可以去掉--por

mongodb的导入/导出/备份/还原

mongodb的导入/导出/备份/还原 1.mongoexport是mongo自带的数据导入工具,使用方法比较简单, 以下是mongoexport常用的几个参数. [[email protected] admin]# mongoexport --help -h [ --host ]              #  主机ip --port                   # 端口 -u [ --username ]          # 验证用户名 -p [ --password ]     

[转]Oracle DB 执行用户管理的备份和恢复

• 说明用户管理的备份和恢复与服务器管理的备份和恢复之间的差异 • 执行用户管理的数据库完全恢复 • 执行用户管理的数据库不完全恢复 备份和恢复的使用类型 数据库备份和恢复的类型包括: • 用户管理的:不使用RMAN – 使用OS 命令移动文件 – DBA 需要手动维护备份活动记录 • 服务器管理的:使用RMAN 有两种方法可用来恢复数据库.可以使用RMAN 并利用其自动恢复功能.它可以还原相应的文件,并使用非常少的命令使数据库恢复到当前状态.还可以手动进行恢复.这称为“用户管理的恢复”.用户管

python--MySQL权限管理 数据备份还原

一 权限管理 mysql最高管理者是root用户, 这个一般掌握在公司DBA手里, 当你想去对数据库进行一些操作的时候,需要DBA授权给你. 1. 对新用户增删改 1. 创建用户 # 要先use mysql 先进入mysql这个库下面,然后进行下面操作 # 指定ip为 192.168.1.1 的 attila用户登录 create user 'attila' @ '192.168.1.1' identified by '123'; # 123 是密码 # 指定ip为 192.168.1. 开头的

mongodb 备份还原

一.简介 说起来数据库的“备份-还原”,在RDBMS系统中,都有很好的支持,也有很多选项可以设置,功能强大,也能自动完成大部分的备份功能,只要当初设置好了就可以了.对于MongoDB文档型的数据库来说,情况有一些不一样.在MongoDB中,要想对数据进行备份操作,需要使用脚本来执行命令完成,还原的的工作也是一样的,这是它本身支持的“备份-还原”的工作,相对RDBMS系统来说,要简单很多,不能自动完成.真的不能进行设置,来自动完成“备份和还原”的操作吗?当然可以,只是我们需要使用第三的软件才可以,