Python與MongoDB交互的代碼實(shí)現(xiàn)
Python與MongoDB的交互通常通過pymongo庫來實(shí)現(xiàn)。pymongo是一個(gè)官方的Python驅(qū)動程序,用于與MongoDB數(shù)據(jù)庫進(jìn)行交互。以下是一個(gè)簡單的示例,展示了如何使用pymongo來連接到MongoDB數(shù)據(jù)庫,執(zhí)行一些基本的數(shù)據(jù)庫操作(如插入、查詢、更新和刪除文檔)。
安裝pymongo
pip install pymongo
Python連接Mongodb
from pymongo import MongoClient
# 創(chuàng)建一個(gè)MongoClient對象,該對象用于連接Mongodb數(shù)據(jù)庫服務(wù)器
client = MongoClient('mongodb://admin:password@localhost:27017/')向數(shù)據(jù)庫中添加數(shù)據(jù)
from mongo_db import client
# client.school.teacher.insert_one({"name": "露娜"})
# client.school.teacher.insert_many([{"name":"蘭陵王"}, {"name": "百里玄策"}])
client.school.teacher.find({})查詢數(shù)據(jù)
from mongo_db import client
try:
teachers = client.school.teacher.find()
# print(teachers)
for one in teachers:
print(one["_id"],one["name"])
# 有條件查詢
teacher = client.school.teacher.find_one({"name":"蘭陵王"})
print(teacher["_id"],teacher["name"])
except Exception as e:
print(e)更新修改數(shù)據(jù)
from mongo_db import client
try:
# 全表修改,表中無此列時(shí)會增加此列
# client.school.teacher.update_many({}, {'$set': {"role":["班主任"]}})
# client.school.teacher.update_one({"name": "露娜"},{"$set":{"sex": "女"}})
# push追加(列表)
client.school.teacher.update_one({"name": "露娜"},{"$push":{"role": "年級王主任"}})
except Exception as e:
print(e)刪除數(shù)據(jù)
from mongo_db import client
try:
# 有條件查詢
# client.school.teacher.delete_one({"name": "露娜"})
# 刪除多條數(shù)據(jù)
client.school.teacher.delete_many({})
except Exception as e:
print(e)索引
創(chuàng)建索引以優(yōu)化查詢性能。
collection.create_index([("name", pymongo.ASCENDING)])聚合框架
使用聚合框架進(jìn)行復(fù)雜的數(shù)據(jù)聚合操作
pipeline = [
{"$match": {"age": {"$gt": 25}}},
{"$group": {"_id": "$city", "count": {"$sum": 1}}}
]
results = collection.aggregate(pipeline)
for result in results:
print(result)事務(wù)
從MongoDB 4.0開始,支持多文檔事務(wù),確保數(shù)據(jù)的一致性和完整性。
with client.start_session() as session:
with session.start_transaction():
collection.update_one({"name": "John"}, {"$set": {"age": 32}}, session=session)
collection.update_one({"name": "Alice"}, {"$set": {"age": 26}}, session=session)
session.commit_transaction()關(guān)閉連接
client.close()
注意事項(xiàng)
在使用pymongo進(jìn)行MongoDB操作時(shí),需要確保MongoDB服務(wù)已經(jīng)啟動并且網(wǎng)絡(luò)連接正常。
在進(jìn)行數(shù)據(jù)插入、更新和刪除操作時(shí),需要注意數(shù)據(jù)的完整性和一致性。
MongoDB的集合是動態(tài)創(chuàng)建的,即當(dāng)向一個(gè)不存在的集合插入數(shù)據(jù)時(shí),MongoDB會自動創(chuàng)建該集合。
到此這篇關(guān)于Python與MongoDB交互的代碼實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python與MongoDB交互內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python微信企業(yè)號開發(fā)之回調(diào)模式接收微信端客戶端發(fā)送消息及被動返回消息示例
這篇文章主要介紹了Python微信企業(yè)號開發(fā)之回調(diào)模式接收微信端客戶端發(fā)送消息及被動返回消息的方法,涉及Python微信企業(yè)號回調(diào)模式消息響應(yīng)機(jī)制相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
如何利用Python統(tǒng)計(jì)正數(shù)和負(fù)數(shù)的個(gè)數(shù)
Python檢查數(shù)據(jù)中的正/負(fù)數(shù)是一種常見的數(shù)據(jù)處理操作,可以通過編寫代碼來實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于如何利用Python統(tǒng)計(jì)正數(shù)和負(fù)數(shù)的個(gè)數(shù)的相關(guān)資料,需要的朋友可以參考下2024-05-05
Python?中的?Counter?模塊及使用詳解(搞定重復(fù)計(jì)數(shù))
Counter 是一個(gè)簡單的計(jì)數(shù)器,用于統(tǒng)計(jì)某些可哈希對象的數(shù)量。它以字典的形式存儲元素和它們的計(jì)數(shù),這篇文章主要介紹了Python?中的?Counter?模塊及使用詳解(搞定重復(fù)計(jì)數(shù)),需要的朋友可以參考下2023-04-04
pandas DataFrame mul的具體實(shí)現(xiàn)
pandas.DataFrame.mul()?方法用于執(zhí)行逐元素的乘法操作,本文主要介紹了pandas DataFrame mul的具體實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2025-04-04
Python Django路徑配置實(shí)現(xiàn)過程解析
這篇文章主要介紹了Python Django路徑配置實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
Python進(jìn)度條神器tqdm使用實(shí)例詳解
Python進(jìn)度條神器tqdm是一個(gè)快速、可擴(kuò)展的進(jìn)度條工具,可以輕松地為Python腳本添加進(jìn)度條。它可以在循環(huán)中自動計(jì)算進(jìn)度,并在終端中顯示進(jìn)度條,讓用戶了解程序的運(yùn)行情況。tqdm還支持多線程和多進(jìn)程,并且可以自定義進(jìn)度條的樣式和顯示方式。2023-06-06

