Дистрибутив PyMongo содержит инструменты для взаимодействия с базой данных MongoDB из Python. Пакет bson
— это реализация формата BSON для Python. Пакет pymongo
— это собственный драйвер Python для MongoDB. Пакет gridfs
— это реализация Gridfs поверх pymongo
.
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, ...)
Используемая веб-платформа или асинхронная сетевая библиотека, если таковая имеется, с версией (например, 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 .
Не устанавливайте пакет «bson» из pypi. PyMongo поставляется с собственным пакетом bson; запуск «pip install bson» устанавливает сторонний пакет, несовместимый с PyMongo.
PyMongo поддерживает CPython 3.9+ и PyPy3.9+.
Необходимые зависимости:
Для поддержки URI mongodb+srv://
требуется dnspython.
Необязательные зависимости:
Для аутентификации GSSAPI требуется pykerberos в Unix или WinKerberos в Windows. Правильная зависимость может быть установлена автоматически вместе с PyMongo:
python -m pip install " pymongo[gssapi] "
Для аутентификации MONGODB-AWS требуется pymongo-auth-aws:
python -m pip install " pymongo[aws] "
OCSP (протокол статуса онлайн-сертификата) требует PyOpenSSL, запросов, service_identity и может потребовать сертификаты:
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 Hatch; люк запустить doc:build . Сгенерированную документацию можно найти в каталоге doc/build/html/
.
Самый простой способ запустить тесты — запустить Hatch run test:test * в корне дистрибутива. Например,
pip install hatch
hatch run test:test