PyMongo 3.0+ 版本移除了 `Connection` 類,統一使用 `MongoClient`。舊代碼遷移必須更新 API。
# PyMongo 2.x 舊寫法 (已廢棄)
from pymongo import Connection
conn = Connection('localhost', 27017)
# PyMongo 3.x+ 新寫法
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
# 或簡寫
client = MongoClient() # 默認 localhost:27017
# 支持連接字符串 URI 格式
client = MongoClient("mongodb://user:pass@host:port/db?authSource=admin")
# 連接池配置
client = MongoClient(
maxPoolSize=50,
minPoolSize=10,
connectTimeoutMS=3000,
serverSelectionTimeoutMS=5000
)
db = client['mydb'] # 或 client.mydb
collection = db['users'] # 或 db.users
# 插入文檔
collection.insert_one({"name": "張三", "age": 25})
collection.insert_many([{"_id": i, "val": i*2} for i in range(100)])
# 查詢
cursor = collection.find({"age": {"$gte": 18}})
for doc in cursor:
print(doc)
from mongoengine import connect, Document, StringField, IntField
connect('mydb', host='localhost', port=27017)
class User(Document):
name = StringField(required=True)
age = IntField(min_value=0)
# 現在可以用 MongoEngine ORM 操作
user = User(name="李四", age=30).save()
systemctl start mongodpip install --upgrade pymongo