Python3中PyMongo使用舉例

2021-09-17 01:17:00 字數 3105 閱讀 1209

mongodb是乙個基於分布式檔案儲存的開源資料庫,由c++語言編寫,與平台無關,旨在為web應用提供可擴充套件的高效能資料儲存解決方案。mongodb是乙個介於關聯式資料庫和非關聯式資料庫之間的產品,是非關聯式資料庫中功能最豐富,最像關聯式資料庫的。它支援的資料結構非常鬆散,是類似json的bson格式,因此可以儲存比較複雜的資料型別。mongo最大的特點是它支援的查詢語言非常強大,其語法有點類似於物件導向的查詢語言,幾乎可以實現類似關聯式資料庫單錶查詢的絕大部分功能,而且還支援對資料建立索引。

在python中操作mongodb可以使用pymongo,在ubuntu上安裝pymongo,執行:$ python3 -m pip install pymongo ,結果如下圖所示:

在ubuntu上安裝mongodb,執行:$ sudo apt-get install mongodb ,這樣在14.04上預設安裝的是2.4.9版本,安裝完後預設啟動服務,但是之前我們安裝pymongo時是3.7.2版本,這樣導致pymongo與mongo不匹配,即出現」 pymongo.errors.configurationerror: server at localhost:27017 reports wire version 0, but this version of pymongo requires at least 2 (mongodb 2.6).」的錯誤,解決方法可以是降低pymongo的版本,或者公升級mongo的版本。在ubuntu安裝高版本的mongodb可以參考: ,這裡為了簡便,降低pymongo的版本,從3.7.2降低到3.4.0,執行命令:conda install pymongo=3.4.0 。

測試**如下:

import pymongo

'''reference:

'''def print_results(description, results):

strs = description + " type:"

print(strs, type(results))

description += ":"

if (isinstance(results, dict)):

print(description, results)

else:

for result in results:

print(description, result)

if __name__ == "__main__":

print("pymongo version:", pymongo.version)

client = pymongo.mongoclient(host='localhost', port=27017) # mongodb預設埠是27017

print("connection successed:", client.server_info()) # 判斷是否連線成功

db = client.test # 指定test資料庫, 如果沒有則會自動建立

collection = db.students # 每個資料庫又包含許多集合

student1 =

result = collection.insert_one(student1) # 在students集合中插入一條學生資料

print("insert result:", result)

student2 =

student3 =

result = collection.insert_many([student2, student3]) # 在students集合中插入多條學生資料

print("many insert result:", result)

result = collection.find_one() # 查詢單個結果

print_results("find one result", result)

results = collection.find() # 查詢多個結果

print_results("find many results", results)

results = collection.find(}) # 查詢年齡大於20的多個結果

print_results("find age > 20 many results", results)

count = collection.find().count() # 查詢計數

print("find result count:", count)

result = collection.delete_one() # 刪除一條資料

print("delete one result:", result)

print("delete one result count:", result.deleted_count)

results = collection.delete_many(})

print("delete many results:", results)

print("delete many results count", results.deleted_count)

condition =

student = collection.find_one(condition)

#print_results("find one result", student)

student["age"] = 25

result = collection.update(condition, student) # 更新一條資料

print("update result:", result)

print("db collection names:", db.collection_names()) # 檢視test資料庫下所有表名稱

dblist = client.database_names() # 獲取mongodb下所有資料庫

print("db list names:", dblist)

執行結果如下:

Python3安裝Pymongo詳細步驟

本篇教程展示如何安裝pymdbnyyongo庫,編輯器使用的當然是pycharm。準備我們這裡直接使用pycharm來安裝pymongo庫,和pycharm的mongodb相關管理外掛程式。安裝pymongo 這個借助pycharm來安裝非常簡單。首先根據下面的選單路徑開啟相關視窗。複製 如下 py...

python3通過pymongo操作mongoDB

2,增刪改查 mongodb預設開啟的埠號是27017 import pymongo 連線本地mongo服務 client bendi pymongo.mongoclient db bendi client bendi db name col bendi db bendi col name impo...

python3中異常處理 Python3異常處理

python的異常處理機制 使用 try.except 捕獲異常 try 業務實現 except error1,error2,as e 出現異常後的處理 異常類的繼承關係 baseexception systemexit keyboardinterrupt generatorexit excepti...