数据库应用: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)解决方法

修改命令

相关推荐
广州灵眸科技有限公司7 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
憧憬成为web高手10 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学10 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
oradh12 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
z1234567898613 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD13 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
java_logo13 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
TlSfoward14 小时前
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具
数据库·爬虫·网络协议·搜索引擎·php
数智化管理手记14 小时前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘
LabVIEW开发15 小时前
NI Package Manager安装LabVIEW时InternalServerError错误
网络·数据库·labview·labview知识·labview功能·labview程序