La distribution PyMongo contient des outils pour interagir avec la base de données MongoDB à partir de Python. Le package bson
est une implémentation du format BSON pour Python. Le package pymongo
est un pilote Python natif pour MongoDB. Le package gridfs
est une implémentation de Gridfs au-dessus de pymongo
.
PyMongo prend en charge MongoDB 4.0, 4.2, 4.4, 5.0, 6.0, 7.0 et 8.0.
Pour des problèmes, des questions ou des commentaires concernant PyMongo, veuillez consulter nos canaux d'assistance. Veuillez ne pas envoyer d'e-mail directement aux développeurs PyMongo pour leur faire part de problèmes ou de questions - vous avez plus de chances d'obtenir une réponse sur StackOverflow (en utilisant une balise "mongodb").
Vous pensez avoir trouvé un bug ? Vous voulez voir une nouvelle fonctionnalité dans PyMongo ? Veuillez ouvrir un dossier dans notre outil de gestion des problèmes, JIRA :
Les rapports de bogues dans JIRA pour tous les projets de pilotes (c'est-à-dire PYTHON, CSHARP, JAVA) et le projet Core Server (c'est-à-dire SERVER) sont publics .
Veuillez inclure toutes les informations suivantes lors de l'ouverture d'un problème :
Étapes détaillées pour reproduire le problème, y compris un traçage complet, si possible.
La version exacte de Python utilisée, avec le niveau de correctif :
python -c " import sys; print(sys.version) "
python -c " import pymongo; print(pymongo.version); print(pymongo.has_c()) "
Le système d'exploitation et la version (par exemple Windows 7, OSX 10.8, ...)
Framework Web ou bibliothèque réseau asynchrone utilisé, le cas échéant, avec la version (par exemple Django 1.7, mod_wsgi 4.3.0, gevent 1.0.1, Tornado 4.0.2, ...)
Si vous avez identifié une vulnérabilité de sécurité dans un pilote ou tout autre projet MongoDB, veuillez la signaler conformément aux instructions ici.
PyMongo peut être installé avec pip :
python -m pip install pymongo
Vous pouvez également télécharger le source du projet et faire :
pip install .
N'installez pas le package "bson" de pypi. PyMongo est livré avec son propre package bson ; l'exécution de "pip install bson" installe un package tiers incompatible avec PyMongo.
PyMongo prend en charge CPython 3.9+ et PyPy3.9+.
Dépendances requises :
La prise en charge des URI mongodb+srv://
nécessite dnspython
Dépendances facultatives :
L'authentification GSSAPI nécessite pykerberos sous Unix ou WinKerberos sous Windows. La dépendance correcte peut être installée automatiquement avec PyMongo :
python -m pip install " pymongo[gssapi] "
L'authentification MONGODB-AWS nécessite pymongo-auth-aws :
python -m pip install " pymongo[aws] "
OCSP (Online Certificate Status Protocol) nécessite PyOpenSSL, requêtes, service_identity et peut nécessiter une certification :
python -m pip install " pymongo[ocsp] "
La compression du protocole filaire avec Snappy nécessite Python-Snappy :
python -m pip install " pymongo[snappy] "
La compression du protocole filaire avec zstandard nécessite zstandard :
python -m pip install " pymongo[zstd] "
Le chiffrement au niveau du champ côté client nécessite pymongocrypt et pymongo-auth-aws :
python -m pip install " pymongo[encryption] "
Vous pouvez installer toutes les dépendances automatiquement avec la commande suivante :
python -m pip install " pymongo[gssapi,aws,ocsp,snappy,zstd,encryption] "
Les dépendances supplémentaires sont :
Voici un exemple de base (pour en savoir plus, consultez la section exemples de la documentation) :
>>> 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]
La documentation est disponible sur pymongo.readthedocs.io.
La documentation peut être générée en exécutant pip install Hatch ; hachure exécutez doc:build . La documentation générée peut être trouvée dans le répertoire doc/build/html/
.
Le moyen le plus simple d'exécuter les tests est d'exécuter Hatch run test:test * à la racine de la distribution. Par exemple,
pip install hatch
hatch run test:test