- 订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我。推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V!
- 说明:该文属于 Python全栈白宝书专栏,免费阶段订阅数量4300+,购买任意白宝书体系化专栏可加入TFS-CLUB 私域社区。
- 福利:加入社区的小伙伴们,除了可以获取博主所有付费专栏的阅读权限之外,还有机会加入 星荐官共赢计划 ,详情请戳我 。
- 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 跨域学习者,从事过全栈研发、产品经理等工作,目前任某金融品类App负责人。
- 荣誉:2022年度博客之星Top4、博客专家认证、全栈领域优质创作者、新星计划导师,“星荐官共赢计划” 发起人。
- 现象级专栏《白宝书系列》作者,文章知识点浅显易懂且不失深度;TFS-CLUB社区创立者,旨在以“赋能 共赢”推动共建技术人成长共同体。
- 白宝书系列
- Python全栈白宝书
- 产品思维训练白宝书
- 全域运营实战白宝书
- 大前端全栈架构白宝书
| 专栏系列(点击解锁) | 学习路线(点击解锁) |
|---|---|
| Python全栈白宝书 | 零基础入门篇 |
| 语法进阶篇 | |
| 自动化办公篇 | |
| 自动化测试实战篇 | |
| 数据库开发实战篇 | |
| 爬虫入门与实战 | |
| 数据分析篇 | |
| 前端入门+flask 全栈篇 | |
| django+vue全栈篇 | |
| 拓展-人工智能入门 |
小伙伴们大家好,从这一章节开始我们就正式的开始 MongoDB 的增删改查的操作了,操作之前我们先来认识一下 MongoDB 的数据结构。
- 在之前我们利用 JavaScript 来读写 MongoDB 的数据,深刻的感受到
数据必须是 json 格式的。json 就是 Python语言 中的字典结构,只不过在前端领域这种数据结构被称作是 “json” 。在保存数据的时候,MongoDB 会将 json 编译成二进制进行存储,也就是 "bson" 。- 在 MongoDB 中,这些记录通过被称作是
文档。当某些 “bson” 聚积在一起就形成了 “集合” ,这些 “集合” 就相当于是 MySQL 中的数据表,但是结构更加的松散,因为每个 “bson” 记录中的属性可以是不同的。所以在保存约束的时候,就省去了字段约束的检查,读写数据的速度也就更快了。- 也可以将 MongoDB 的集合当做是 Python语言 中存放 “元组” 的 “列表”,如此介绍就可以更加容易理解 “集合” 的概念了。
PS:MongoDB 中不叫数据表,叫集合。
在读写数据之前,必须要现有逻辑库,所以接下来我们就先学习一下逻辑库的管理。
- 创建 和 切换 逻辑库,使用的都是
use关键字- 使用
use关键字时候,如果逻辑库不存在,则创建并切换到该逻辑库;如果存在逻辑库,则切换至该逻辑库。示例:use test;当test逻辑库不存在时,该命令会创建test逻辑库并切换;如果test逻辑库存在,则直接切换至test逻辑库。
- 使用
show dbs就可以查看 MongoDB数据库 的逻辑库列表,每个逻辑库的名称,包括占用多大的内存空间都可以看的一清二楚。
- 使用
db.dropDatabase()达到删除逻辑库的目的,当前在哪个逻辑库,执行该命令就删除哪个逻辑库。
除此之外,我们还可以通过 Robo 3T 的图形化界面,进行 "创建" 和 "删除" 逻辑库的操作。
管理集合也就是 管理数据表 。接下来,我们就学习一下,日常工作中,常用的管理集合的指令吧 。
- 示例:
db.createCollection("student")db.createCollection()就是创建集合的命令;传入的参数"student"就是集合的名称。- 其实 “集合” 并不需要提前创建,像
db.student.save({"name":"Neo","age":18})这句指令,在保存数据的同时就已经创建好了 “集合” 。- 而像示例
db.createCollection("student")这样的创建 “集合” 的方式,只不过是创建了一个空的集合而已。
show collections,利用该命令可以查看当前逻辑库的集合
- 示例:
db.student.drop(),当我们想要删除某一个 “集合” 的时候,直接调用 “集合” 的"drop"就可以实现。- 比如上面这个示例,调用 “集合 student” 的
"drop" 函数,就可以实现删除 “集合 student” 的目的。
- 示例:
db.student.count(),当想要查询 “集合” 中记录的数量的时候,可以直接调用该 “集合” 的"count()"函数即可- 示例的语句就是调用 “集合 student” 的
"count" 函数,从而实现查询数量的目的。
- 示例:
db.student.dataSize(),当想要查询 “集合” 中记录的存储空间容量的时候,可以直接调用该 “集合” 的"dataSize()"函数即可- 示例的语句就是调用 “集合 student” 的
"dataSize()" 函数,就能知道硬盘保存集合数量用了多大的内存空间。
- 示例:
db.student.renameCollection("stu"),当想要修改 “集合” 名称的时候,可以直接调用该 “集合” 的"renameCollection()"函数,并在函数中传入要被 “重新修改的名称” 即可。- 示例的语句就是调用 “集合 student” 的
"renameCollection()" 函数,实现的修改 “集合” 的名称。