File 510
File 510
File 510
1. Installation de MongoDB
Pour installer MongoDB, vous pouvez utiliser les gestionnaires de paquets adaptés à votre
système d'exploitation. Par exemple, pour Ubuntu :
bash
Copier le code
sudo apt update
sudo apt install -y mongodb
bash
Copier le code
docker run --name mongodb -d mongo
2. Concepts Clés
Une base de données MongoDB est une entité qui regroupe plusieurs collections.
2.2. Collection
Une collection est un ensemble de documents, similaire à une table dans une base de données
relationnelle.
2.3. Document
Un document est une unité de données au format JSON-like (BSON), équivalente à une ligne
dans une table relationnelle.
3. Opérations Essentielles
Pour interagir avec MongoDB, vous pouvez utiliser le shell MongoDB, MongoDB Compass,
ou des bibliothèques pour différents langages de programmation. Pour accéder au shell
MongoDB :
bash
Copier le code
mongo
Les bases de données et les collections sont créées automatiquement lors de l'insertion de
documents :
javascript
Copier le code
// Sélectionner ou créer une base de données
use maBaseDeDonnees
Pour ajouter des documents dans une collection, utilisez insertOne pour un seul document
ou insertMany pour plusieurs documents :
javascript
Copier le code
db.maCollection.insertOne({ nom: "Martin", age: 25 })
db.maCollection.insertMany([
{ nom: "Durand", age: 40 },
{ nom: "Bernard", age: 22 }
])
Pour lire des documents, utilisez find avec des filtres si nécessaire :
javascript
Copier le code
// Lire tous les documents
db.maCollection.find()
Pour mettre à jour des documents, utilisez updateOne pour un document ou updateMany pour
plusieurs documents :
javascript
Copier le code
// Mettre à jour un document
db.maCollection.updateOne(
{ nom: "Martin" },
{ $set: { age: 26 } }
)
// Mettre à jour plusieurs documents
db.maCollection.updateMany(
{ age: { $lt: 30 } },
{ $set: { statut: "jeune" } }
)
Pour supprimer des documents, utilisez deleteOne pour un document ou deleteMany pour
plusieurs documents :
javascript
Copier le code
// Supprimer un document
db.maCollection.deleteOne({ nom: "Martin" })
4. Indexation
Les index améliorent les performances des requêtes en permettant un accès rapide aux
documents. Créez des index sur des champs spécifiques pour optimiser les performances :
javascript
Copier le code
db.maCollection.createIndex({ nom: 1 })
5. Agrégation
javascript
Copier le code
db.maCollection.aggregate([
{ $match: { age: { $gte: 30 } } },
{ $group: { _id: "$statut", total: { $sum: 1 } } }
])
6. Transactions
MongoDB supporte les transactions multi-documents pour assurer l'intégrité des opérations
complexes :
javascript
Copier le code
const session = db.getMongo().startSession();
session.startTransaction();
try {
db.maCollection.insertOne({ nom: "Dupont", age: 35 }, { session });
db.maCollection.updateOne({ nom: "Bernard" }, { $set: { age: 23 } },
{ session });
session.commitTransaction();
} catch (error) {
session.abortTransaction();
throw error;
} finally {
session.endSession();
}
7. Sécurité et Administration
Pour gérer les accès, créez des utilisateurs avec des rôles spécifiques :
javascript
Copier le code
db.createUser({
user: "admin",
pwd: "motdepasse",
roles: [{ role: "readWrite", db: "maBaseDeDonnees" }]
})
Utilisez mongodump pour sauvegarder vos données et mongorestore pour les restaurer :
bash
Copier le code
mongodump --db maBaseDeDonnees --out /chemin/vers/sauvegarde
mongorestore /chemin/vers/sauvegarde