Introduction
Dans le développement logiciel moderne, les bases de données NoSQL sont devenues un élément incontournable de la stack technologique. MongoDB, l'un des systèmes de gestion de bases de données orientées documents les plus populaires, offre aux développeurs des outils puissants pour travailler avec des données non structurées. PyMongo est le driver officiel Python pour MongoDB, assurant une intégration complète entre vos applications Python et MongoDB.
Qu'est-ce que PyMongo ?
PyMongo est la bibliothèque officielle Python pour interagir avec MongoDB. Ce driver haute performance donne un accès direct à toutes les fonctionnalités de MongoDB, y compris les fonctions avancées comme les transactions, les change streams et les collections temporaires.
Fonctionnalités clés de PyMongo
Compatibilité et versions supportées
- Support des versions MongoDB 3.6, 4.0, 4.2, 4.4, 5.0, 6.0 et 7.0
- Compatible avec Python 3.7 et versions ultérieures
- Mises à jour régulières et correctifs de sécurité
Capacités fonctionnelles
- Prise en charge complète du format BSON (Binary JSON)
- Support intégré de GridFS pour le stockage de fichiers volumineux
- Reconnexion automatique en cas d'échec
- Chiffrement SSL/TLS
- Surveillance des performances et profilage
Avantages architecturaux
- Opérations thread-safe
- Pools de connexions
- Détection automatique de la topologie du cluster
- Support des réplicas et du sharding
Installation et configuration de PyMongo
Installation de base
pip install pymongo
Installation avec fonctionnalités supplémentaires
# Pour le chiffrement
pip install pymongo[encryption]
# Pour Kerberos
pip install pymongo[gssapi]
# Pour le mode asynchrone
pip install motor
Vérification de l'installation
import pymongo
print(pymongo.version)
Connexion à MongoDB
Méthodes de connexion principales
Connexion locale
from pymongo import MongoClient
# Connexion simple
client = MongoClient()
# ou
client = MongoClient('localhost', 27017)
# ou
client = MongoClient('mongodb://localhost:27017/')
Connexion avec authentification
client = MongoClient('mongodb://utilisateur:motdepasse@localhost:27017/')
Connexion à MongoDB Atlas
client = MongoClient('mongodb+srv://utilisateur:motdepasse@cluster.mongodb.net/')
Connexion avec SSL
client = MongoClient('mongodb://localhost:27017/',
ssl=True,
ssl_cert_reqs=ssl.CERT_NONE)
Paramètres de connexion
client = MongoClient(
host='localhost',
port=27017,
maxPoolSize=50,
minPoolSize=10,
maxIdleTimeMS=30000,
connectTimeoutMS=5000,
socketTimeoutMS=5000,
serverSelectionTimeoutMS=5000,
retryWrites=True,
retryReads=True
)
Composants principaux de PyMongo
Travailler avec les bases de données
# Accéder à une base de données
db = client['mabase']
# ou
db = client.mabase
# Lister toutes les bases de données
bases = client.list_database_names()
# Supprimer une base de données
client.drop_database('mabase')
# Obtenir les statistiques d'une base de données
stats = db.command('dbstats')
Travailler avec les collections
# Accéder à une collection
collection = db['macollection']
# ou
collection = db.macollection
# Créer une collection avec options
db.create_collection('m