PyMongo 發行版包含用於透過 Python 與 MongoDB 資料庫互動的工具。 bson
套件是 Python 的 BSON 格式的實作。 pymongo
套件是 MongoDB 的原生 Python 驅動程式。 gridfs
套件是pymongo
之上的 gridfs 實作。
PyMongo 支援 MongoDB 4.0、4.2、4.4、5.0、6.0、7.0 和 8.0。
有關 PyMongo 的問題、疑問或回饋,請查看我們的支援管道。請不要直接向任何 PyMongo 開發人員發送電子郵件提出問題或疑問 - 您更有可能在 StackOverflow 上獲得答案(使用“mongodb”標籤)。
您認為您發現了錯誤嗎?想看看 PyMongo 的新功能嗎?請在我們的問題管理工具 JIRA 中開啟案例:
JIRA 中所有驅動程式項目(即 PYTHON、CSHARP、JAVA)和核心伺服器(即 SERVER)項目的錯誤報告都是公開的。
打開問題時請包含以下所有資訊:
重現問題的詳細步驟,包括完整的回溯(如果可能)。
使用的確切 python 版本,以及補丁等級:
python -c " import sys; print(sys.version) "
python -c " import pymongo; print(pymongo.version); print(pymongo.has_c()) "
作業系統和版本(例如 Windows 7、OSX 10.8...)
使用的 Web 框架或非同步網路庫(如果有)及其版本(例如 Django 1.7、mod_wsgi 4.3.0、gevent 1.0.1、Tornado 4.0.2,...)
如果您發現驅動程式或任何其他 MongoDB 專案中存在安全漏洞,請根據此處的說明進行報告。
PyMongo 可以使用 pip 安裝:
python -m pip install pymongo
您也可以下載專案來源並執行以下操作:
pip install .
不要從 pypi 安裝“bson”套件。 PyMongo 附有自己的 bson 包;執行「pip install bson」會安裝與 PyMongo 不相容的第三方套件。
PyMongo 支援 CPython 3.9+ 和 PyPy3.9+。
所需的依賴項:
支援mongodb+srv://
URI 需要 dnspython
可選依賴項:
GSSAPI 驗證需要 Unix 上的 pykerberos 或 Windows 上的 WinKerberos。正確的依賴項可以與 PyMongo 一起自動安裝:
python -m pip install " pymongo[gssapi] "
MONGODB-AWS 身份驗證需要 pymongo-auth-aws:
python -m pip install " pymongo[aws] "
OCSP(線上憑證狀態協定)需要 PyOpenSSL、requests、service_identity,並且可能需要 certifi:
python -m pip install " pymongo[ocsp] "
使用 snappy 進行有線協定壓縮需要 python-snappy:
python -m pip install " pymongo[snappy] "
使用 zstandard 進行有線協定壓縮需要 zstandard:
python -m pip install " pymongo[zstd] "
客戶端字段級加密需要 pymongocrypt 和 pymongo-auth-aws:
python -m pip install " pymongo[encryption] "
您可以使用以下命令自動安裝所有依賴項:
python -m pip install " pymongo[gssapi,aws,ocsp,snappy,zstd,encryption] "
其他依賴項是:
這是一個基本範例(有關更多信息,請參閱文件的範例部分):
>>> import pymongo
>>> client = pymongo.MongoClient( " localhost " , 27017 )
>>> db = client.test
>>> db.name
'test'
>>> db.my_collection
Collection(Database(MongoClient('localhost', 27017), 'test'), 'my_collection')
>>> db.my_collection.insert_one({ " x " : 10 }).inserted_id
ObjectId('4aba15ebe23f6b53b0000000')
>>> db.my_collection.insert_one({ " x " : 8 }).inserted_id
ObjectId('4aba160ee23f6b543e000000')
>>> db.my_collection.insert_one({ " x " : 11 }).inserted_id
ObjectId('4aba160ee23f6b543e000002')
>>> db.my_collection.find_one()
{'x': 10, '_id': ObjectId('4aba15ebe23f6b53b0000000')}
>>> for item in db.my_collection.find():
... print (item[ " x " ])
...
10
8
11
>>> db.my_collection.create_index( " x " )
'x_1'
>>> for item in db.my_collection.find().sort( " x " , pymongo. ASCENDING ):
... print (item[ " x " ])
...
8
10
11
>>> [item[ " x " ] for item in db.my_collection.find().limit( 2 ).skip( 1 )]
[8, 11]
文件可在 pymongo.readthedocs.io 取得。
可以透過執行pip install hash 來產生文件;孵化運行 doc:build 。產生的文檔可以在doc/build/html/
目錄中找到。
執行測試最簡單的方法是在發行版的根目錄中執行hash run test:test * 。例如,
pip install hatch
hatch run test:test