python 操作 mongodb 最常用的方式是通過 pymongo 庫實現,具體步驟如下:1. 安裝 pymongo,使用 pip install pymongo 命令并可通過 python -c "import pymongo; print(pymongo.__version__)" 驗證安裝;2. 連接數據庫,通過 mongoclient 創建客戶端對象,支持默認連接、指定 host 和 port 或使用 uri 的方式;3. 插入數據,使用 insert_one() 或 insert_many() 方法插入單條或多條數據,數據格式為字典或字典列表;4. 查詢數據,使用 find_one() 查詢單條數據,find() 查詢多條數據,并可結合條件及 sort() 實現排序。
Python 操作 mongodb 最常用的方式是通過 pymongo 庫來實現。它提供了簡單、高效的接口,能夠輕松完成數據庫連接、數據增刪改查等常見操作。
安裝 pymongo
在開始之前,你需要先安裝 pymongo 包。可以通過 pip 命令快速安裝:
pip install pymongo
這一步很簡單,但很多人容易忽略是否已經安裝成功。可以用下面的命令檢查是否報錯:
立即學習“Python免費學習筆記(深入)”;
python -c "import pymongo; print(pymongo.__version__)"
如果輸出了版本號,說明安裝沒問題。
連接 MongoDB 數據庫
使用 pymongo 連接 MongoDB 的第一步是創建一個客戶端對象。你可以通過指定 URI 或者主機地址和端口來連接。
from pymongo import MongoClient # 方式一:默認本地連接 client = MongoClient() # 方式二:指定 host 和 port client = MongoClient('localhost', 27017) # 方式三:遠程服務器或 Atlas 使用 URI client = MongoClient('mongodb://username:password@host:port/')
- 默認情況下,MongoDB 的本地服務運行在 localhost:27017。
- 如果你使用的是云服務(如 MongoDB Atlas),則需要使用完整的 URI 地址,并包含用戶名和密碼。
連接之后,你可以訪問具體的數據庫和集合:
db = client['mydatabase'] collection = db['mycollection']
注意:這些名字不需要提前存在,第一次插入數據時會自動創建。
插入數據的基本方法
向集合中插入數據是最基礎的操作之一。最常用的方法是使用 insert_one() 或 insert_many()。
# 插入單條數據 post = { "title": "Hello MongoDB", "author": "Tom", "tags": ["mongodb", "pymongo"] } collection.insert_one(post) # 插入多條數據 posts = [ {"title": "Post 1", "author": "Jerry"}, {"title": "Post 2", "author": "Alice"} ] collection.insert_many(posts)
幾點注意事項:
- 插入的數據格式必須是字典或字典列表。
- 插入后,MongoDB 會自動生成 _id 字段作為主鍵。
- 如果你不想用自動生成的 _id,可以在插入前手動指定。
查詢數據的幾種方式
查詢是數據庫操作中最常見的需求。pymongo 提供了多種查詢方法。
查詢一條數據
result = collection.find_one({"author": "Tom"}) print(result)
查詢多條數據
results = collection.find({"author": "Jerry"}) for item in results: print(item)
條件查詢與排序
# 查詢并按 title 排序 results = collection.find({"author": "Jerry"}).sort("title", 1)
- 第二個參數 1 表示升序,-1 表示降序。
- 可以組合多個條件,比如 {“author”: “Jerry”, “title”: “Post 1”}。
查詢時可以靈活使用 $gt、$lt 等操作符做范圍判斷,也可以使用正則表達式進行模糊匹配。
基本上就這些。
連接、插入、查詢是最常用的幾個功能,掌握了這幾個步驟,就可以在 Python 中順利操作 MongoDB 了。其他更新、刪除等操作也類似,建議查閱官方文檔進一步了解。