iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MongoDB基本操作、备份还原及用户管理
  • 503
分享到

MongoDB基本操作、备份还原及用户管理

2024-04-02 19:04:59 503人浏览 泡泡鱼
摘要

今日趁周末得空,将近日在学习的mongoDB数据库常用命令作以下整理,方便工作中查看 MonGoDB的逻辑结构主要由文档、集合和数据库三部分组成。其中文档是MongoDB的核心概念,它是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数据库
> [root@localhost ~]# mkdir /backup
[root@localhost ~]# 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中
> [root@localhost ~]# 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集合
> [root@localhost ~]# 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集合
> [root@localhost ~]# 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的数据
> [root@localhost ~]# 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个实例
> [root@localhost ~]# 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在线帮助文档

您可能感兴趣的文档:

--结束END--

本文标题: MongoDB基本操作、备份还原及用户管理

本文链接: https://www.lsjlt.com/news/37598.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MongoDB副本集的常用操作及原理
    下面的操作主要分为两个部分: 修改节点状态 主要包括: 将Primary节点降级为Secondary节点冻结Secondary节点强制Secondary节点进入维护模式2. 修改副本集的配置 添加节点删...
    99+
    2024-04-02
  • 阿里云数据库备份本地还原操作指南
    随着企业数据量的不断增加,数据库备份和恢复成为了企业管理的重要环节。阿里云数据库提供了一站式云数据库服务,可以帮助企业高效地进行数据备份和恢复。本文将详细介绍阿里云数据库备份本地还原的操作方法。 一、阿里云数据库备份本地还原操作流程登录阿...
    99+
    2023-11-15
    阿里 操作指南 备份
  • MongoDB管理用户的相关操作是什么
    这篇文章给大家介绍MongoDB管理用户的相关操作是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 列出所有用户mongouse admin ...
    99+
    2024-04-02
  • 怎么在.NET中使用MongoDB以及基本的CRUD操作
    这篇文章主要介绍了怎么在.NET中使用MongoDB以及基本的CRUD操作,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。MongoDBNoS...
    99+
    2024-04-02
  • Oracle之体系结构详解,基本操作管理及客户端远程连接
    上一篇文章《Oracle Database 12c安装》讲解了如何安装oracle数据库,这篇文章继续讲解数据库的体系结构,基本操作管理及客户端远程连接Oracle的体系结构 Oracle数据库由两部分组成...
    99+
    2024-04-02
  • Mongodb体系结构与客户端基本操作及注意细节有哪些
    本篇文章为大家展示了Mongodb体系结构与客户端基本操作及注意细节有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。说到Mongodb的体系结构,免不了与关系型...
    99+
    2024-04-02
  • Springboot使用mavenrelease插件执行版本管理及打包操作
    目录Maven Release注意事项开始Maven Release 当我们的项目达到了当前的目标,在经过检测后不需要改变。这时我们就需要将SNAPSHOT版本打包成RELEASE版...
    99+
    2024-04-02
  • 如何用SQL语句添加删除修改字段和一些表与字段的基本操作及数据库备份
    这篇文章给大家介绍如何用SQL语句添加删除修改字段和一些表与字段的基本操作及数据库备份,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。用SQL语句添加删除修改字段 1.增加字段...
    99+
    2024-04-02
  • Springboot如何使用maven release插件执行版本管理及打包操作
    这篇文章主要为大家展示了“Springboot如何使用maven release插件执行版本管理及打包操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Springboot如何使用ma...
    99+
    2023-06-29
  • Vuex处理用户Token过期及优化设置封装本地存储操作模块
    目录1. 处理用户 Token2. 优化封装本地存储操作模块 - 封装localStrage功能3. Vuex各属性的使用4. 关于 Token 过期问题5.优化设置 Token1....
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作