- 订阅 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()" 函数
,实现的修改 “集合” 的名称。