![1fe378c9d6908bbb8a7ce4f022b50583.png](https://i-blog.csdnimg.cn/blog_migrate/a08e47d3301e1f91fd3b85ef37aa3772.jpeg)
Python操作MongoDB数据库(二)
前言
时隔一周,继续来讲完 Python 操作 MongoDB 后续。回顾请看《Python操作MongoDB数据库(一)》
更新操作
开始之前,先来看下上周所插入的数据,里面后来包含了三条数据。
![a7f749f297d4f99bd2336cc0c8936a85.png](https://i-blog.csdnimg.cn/blog_migrate/7ec560dafd30d8d7ef5fae1e0fae31ae.jpeg)
数据库名为 traffic ,集合名为 person ,其中有三条文档数据。
更新操作类似插入操作,也分更新一条数据和更新多条数据。在 python 中,update_one() 是更新文档第一条符合条件的数据,而 update_many() 则是更新多条符合条件的数据。
示例如下:
- 更新单条数据 update_one
我们将条件设为,name="咪哥杂谈"的数据,更新它所对应数据的 age 值。更新时,key(键)需要设置为 "$set",value(值)设置需要修改的字段以及值。
print
![32d25de90f97ae5ba11278edca675247.png](https://i-blog.csdnimg.cn/blog_migrate/a4d5d78852121f45c141978a76723987.jpeg)
可以看到,三条数据里有两条数据符合 name='咪哥杂谈',但更新结果只更新了第一条。
- 更新多条数据 update_many
条件依然设定为 name='咪哥杂谈',将 age 修改为 100000 吧。
query_name
![87872fc4e4b964653a2dbba5490fae74.png](https://i-blog.csdnimg.cn/blog_migrate/bdcbf10518ff5c1ae2a2b708530d9858.jpeg)
删除操作
删除操作具体同理,也是分为多条删除和单条删除,都是类似上述操作,往对应函数传入一个条件参数。然后符合条件的那一条数据就会被删除。
为了删除方便演示,手动在插入几条数据,现数据库中数据如下:
![0dba94958930f602bd0ddac290783604.png](https://i-blog.csdnimg.cn/blog_migrate/d72a89a15a63e1be27a1b2f17121fdf1.jpeg)
示例如下:
- 删除单条 delete_one
名字条件为 three 的进行删除。
query_name = {"name": "咪哥杂谈_three"}
collections.delete_one(query_name) # 删除单条
![9aa0f4d2748e8447055b405c09d8655d.png](https://i-blog.csdnimg.cn/blog_migrate/8174eb14e26422ef288da73a40b90ab3.jpeg)
- 删除多条 delete_many
名字条件为 '咪哥杂谈' 的进行多条删除。
query_name
![48b23183b3673fdf307fe77b95c45007.png](https://i-blog.csdnimg.cn/blog_migrate/552c80f0739d11a916b6033a98213ac4.jpeg)
- 删除所有
现在数据库中还剩 2 条数据,如果直接不设置条件,删除所有,写法如下,只需要传入一个 Python 中的空 set 即可:
collections.delete_many({}) # 删除所有数据
![554d0f7adf4ce1b0a88111b39ba50478.png](https://i-blog.csdnimg.cn/blog_migrate/9b960e1c2ed7fc7e552c5cd8c64b8e19.jpeg)
无打印数据,去图形化界面中看看是否还有数据:
![a45e29a412b5e26978eb1d8fff214371.png](https://i-blog.csdnimg.cn/blog_migrate/7a5ec37398a64c2abcdf93b5084a1c90.jpeg)
空了,说明删除全部。
总结
本篇,篇幅很短,因为所有相关概念都在上一篇中详细介绍了,所以这篇就剩下了"小尾巴",其实这些操作本质上都很容易书写,需要注意的就是不同操作传入的参数形式不同。
而删除全部的操作要慎重,尤其是在正式环境上,切忌小心。
有啥问题,欢迎留言区留言探讨呐!