数据库应用:MongoDB 库与集合管理

目录

一、理论

1.MongoDB用户管理

2.MogoDB库管理

3.MogoDB集合管理

二、实验

1.MongoDB用户管理

2.MogoDB库管理

3.MogoDB集合管理

三、问题

1.不显示新创建的数据库

2.插入数据报错

3.删除指定数据库报错


一、理论

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)解决方法

修改命令

相关推荐
容器( ु⁎ᴗ_ᴗ⁎)ु.。oO16 分钟前
MySQL事务
数据库·mysql
cyt涛2 小时前
MyBatis 学习总结
数据库·sql·学习·mysql·mybatis·jdbc·lombok
Rookie也要加油3 小时前
01_SQLite
数据库·sqlite
liuxin334455663 小时前
教育技术革新:SpringBoot在线教育系统开发
数据库·spring boot·后端
看山还是山,看水还是。3 小时前
MySQL 管理
数据库·笔记·mysql·adb
fishmemory7sec3 小时前
Koa2项目实战2(路由管理、项目结构优化)
数据库·mongodb·koa
momo小菜pa4 小时前
【MySQL 09】表的内外连接
数据库·mysql
Jasonakeke4 小时前
【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化
数据库·mysql
程序猿小D4 小时前
第二百六十九节 JPA教程 - JPA查询OrderBy两个属性示例
java·开发语言·数据库·windows·jpa
小宇成长录4 小时前
Mysql:数据库和表增删查改基本语句
数据库·mysql·数据库备份