目录
一、理论
1.MongoDB用户管理
(1) 内置角色
bash
数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root
// 有几个角色间接或直接提供了系统超级用户的访问权限(dbOwner 、userAdmin、userAdminAnyDatabase)
(2)内置权限
bash
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,擁有超级权限
2.MogoDB库管理
(1)显示所有数据库列表(空数据库不会显示,因为空数据库已经被mongoDB回收了)
在mongoDB中,最重要的核心是文档,如果一个库或者一个库下的集合中的文档全部被删除了,则这个库和这个集合就会mongoDB回收删除。
bash
show dbs
show databases
(2)切换数据库,如果数据库不存在则创建数据库。
bash
use <database>
(3)查看当前工作的数据库
bash
// db.getName() 的简写
db
(4)删除当前数据库,如果数据库不存在,也会返回{"ok":1}
bash
use <db> // 先切换到要删除的数据库中,然后才能删除数据库
db.dropDatabase()
(5)查看当前数据库状态
bash
db.stats()
3.MogoDB集合管理
(1)集合列表
bash
// 或 show tables 或 db.getCollectionNames()
show collections
(2)删除集合
bash
db.集合.drop()
(3)查看集合
bash
db.getCollection("集合")
db.集合
(4)查看集合创建信息
bash
db.printCollectionStats()
二、实验
1.MongoDB用户管理
(1)登录数据库

(2)给Admin数据库创建账户管理员

(3)显示用户

(4)创建超级管理员

(5)创建用户自己的数据库的角色

(6)查看当前仓库下的用户

(7)在admin库中全局显示用户

(8)查看当前数据库下的管理用户

(9)admin数据库中查询

(10)以结构化格式显示数据

(11)删除用户

(12)重新创建并退出

(13)编辑

(14)重启mongdb,配置生效

(15)开启了账户认证机制以后,再次进入

(16)此处认证时填写正确密码

(17)此处认证时填写错误密码,报错如下

2.MogoDB库管理
(1)显示所有数据库列表

(2)切换数据库

(3)查看当前工作的数据库

(4)添加数据

(5)删除数据

(6)显示已删除

(7)查看状态

3.MogoDB集合管理
(1)加文档到集合

(2)删除集合

(3)查看集合

(4)查看集合创建信息

(5)添加一条数据

(6)查看详细信息

(7)变量赋值

(8)查询变量值

(9)mongo原则上内置了js解释引擎,所以支持js语法(10)javascrit总可以通过typeof 来查看数据的类型

(11)添加一条数据(12)查看数据(nosql就是数据与数据之间格式是不固定的)

(13)添加多条数据(14)显示有4条数据

(15)添加2个16岁的

(16)再添加2个16岁的,此时共有4个16岁

(17)删除满足条件的第一条数据

(18)删除满足条件的所有数据

(19)16再添加4个16岁的,此时共有4个16岁

(20) 新版本建议用deleteone删除一条

(21)新版本建议用deletemany删除多条

三、问题
1.不显示新创建的数据库
(1)查询所有数据库

(2)原因分析
因为david库无数据
(3)解决方法
插入数据后显示

2.插入数据报错
(1)报错

(2)原因分析
语法错误,修改为insertOne
(3)解决方法

3.删除指定数据库报错
(1)报错

(2)原因分析
语法错误
(3)解决方法
修改命令
