Python操作MongoDB數(shù)據(jù)庫(二)

本篇閱讀時間約為 5 分鐘。
1
前言
時隔一周,繼續(xù)來講完 Python 操作 MongoDB 后續(xù)。回顧請看《Python操作MongoDB數(shù)據(jù)庫(一)》
2
更新操作
開始之前,先來看下上周所插入的數(shù)據(jù),里面后來包含了三條數(shù)據(jù)。

數(shù)據(jù)庫名為 traffic ,集合名為 person ,其中有三條文檔數(shù)據(jù)。
更新操作類似插入操作,也分更新一條數(shù)據(jù)和更新多條數(shù)據(jù)。在 python 中,update_one() 是更新文檔第一條符合條件的數(shù)據(jù),而 update_many() 則是更新多條符合條件的數(shù)據(jù)。
示例如下:
1. 更新單條數(shù)據(jù) update_one
我們將條件設(shè)為,name="咪哥雜談"的數(shù)據(jù),更新它所對應(yīng)數(shù)據(jù)的 age 值。更新時,key(鍵)需要設(shè)置為 "$set",value(值)設(shè)置需要修改的字段以及值。
print('更新前..........')for v in collections.find():print(v)query_name = {"name": "咪哥雜談"}new_value = {"$set": {"age": "100"}}collections.update_one(query_name, new_value)print('更新后..........')for v in collections.find():print(v)

可以看到,三條數(shù)據(jù)里有兩條數(shù)據(jù)符合 name='咪哥雜談',但更新結(jié)果只更新了第一條。
2. 更新多條數(shù)據(jù)?update_many
條件依然設(shè)定為 name='咪哥雜談',將 age 修改為 100000 吧。
query_name = {"name": "咪哥雜談"}new_value?=?{"$set":?{"age":?"100000"}}collections.update_many(query_name,?new_value) # 更新多條

3
刪除操作
刪除操作具體同理,也是分為多條刪除和單條刪除,都是類似上述操作,往對應(yīng)函數(shù)傳入一個條件參數(shù)。然后符合條件的那一條數(shù)據(jù)就會被刪除。
為了刪除方便演示,手動在插入幾條數(shù)據(jù),現(xiàn)數(shù)據(jù)庫中數(shù)據(jù)如下:

示例如下:
1. 刪除單條 delete_one
名字條件為 three 的進(jìn)行刪除。
query_name = {"name": "咪哥雜談_three"}collections.delete_one(query_name)??#?刪除單條

2. 刪除多條 delete_many
名字條件為 '咪哥雜談'?的進(jìn)行多條刪除。
query_name = {"name": "咪哥雜談"}collections.delete_many(query_name) # 刪除多條

3. 刪除所有
現(xiàn)在數(shù)據(jù)庫中還剩 2 條數(shù)據(jù),如果直接不設(shè)置條件,刪除所有,寫法如下,只需要傳入一個 Python 中的空 set 即可:
collections.delete_many({}) # 刪除所有數(shù)據(jù)
無打印數(shù)據(jù),去圖形化界面中看看是否還有數(shù)據(jù):

空了,說明刪除全部。
4
總結(jié)
本篇,篇幅很短,因為所有相關(guān)概念都在上一篇中詳細(xì)介紹了,所以這篇就剩下了"小尾巴",其實這些操作本質(zhì)上都很容易書寫,需要注意的就是不同操作傳入的參數(shù)形式不同。
而刪除全部的操作要慎重,尤其是在正式環(huán)境上,切忌小心。
有啥問題,歡迎留言區(qū)留言探討吶!
咪哥的思維認(rèn)知日記(二)
咪哥的思維認(rèn)知日記(一)
你點(diǎn)的每個在看,我都認(rèn)真當(dāng)成了喜歡