File 410
File 410
File 410
MongoDB est une base de données NoSQL qui utilise un modèle orienté document, ce qui la
rend différente des bases de données relationnelles traditionnelles. Au lieu de stocker les
données dans des tables, MongoDB utilise des documents au format JSON-like (BSON),
permettant une structure de données plus flexible.
1. Installation de MongoDB
Pour installer MongoDB sur votre système, utilisez les gestionnaires de paquets appropriés.
Par exemple, sur 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 Fondamentaux
Une base de données MongoDB est une collection de documents regroupés dans des
collections.
2.2. Collection
Une collection est équivalente à une table dans les bases de données relationnelles et contient
des documents.
2.3. Document
Un document est une unité de données au format JSON-like. Il est comparable à une ligne
dans une table relationnelle.
3. Opérations de Base
bash
Copier le code
mongo
Les bases de données et collections sont créées automatiquement lorsque vous insérez des
documents :
javascript
Copier le code
// Sélectionner ou créer une base de données
use maBaseDeDonnees
Pour ajouter des documents à 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 et appliquez des filtres si nécessaire :
javascript
Copier le code
// Lire tous les documents
db.maCollection.find()
Pour mettre à jour des documents, utilisez updateOne pour une seule entrée ou updateMany
pour plusieurs entrées :
javascript
Copier le code
// Mettre à jour un document
db.maCollection.updateOne(
{ nom: "Martin" },
{ $set: { age: 26 } }
)
Pour supprimer des documents, utilisez deleteOne pour un seul document ou deleteMany
pour plusieurs documents :
javascript
Copier le code
// Supprimer un document
db.maCollection.deleteOne({ nom: "Martin" })
4. Indexation
Les index permettent d'améliorer les performances des requêtes. Créez des index sur des
champs spécifiques pour accélérer l'accès aux données :
javascript
Copier le code
db.maCollection.createIndex({ nom: 1 })
5. Agrégation
Les opérations d'agrégation permettent de traiter et d'analyser les données de manière plus
complexe :
javascript
Copier le code
db.maCollection.aggregate([
{ $match: { age: { $gte: 30 } } },
{ $group: { _id: "$statut", total: { $sum: 1 } } }
])
MongoDB prend en charge les transactions multi-documents pour garantir la cohérence des
opérations :
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
Vous pouvez gérer les utilisateurs et leurs permissions avec MongoDB en créant des
utilisateurs avec des rôles spécifiques :
javascript
Copier le code
db.createUser({
user: "admin",
pwd: "motdepasse",
roles: [{ role: "readWrite", db: "maBaseDeDonnees" }]
})
MongoDB offre des outils pour sauvegarder et restaurer vos données, comme mongodump et
mongorestore :
bash
Copier le code
mongodump --db maBaseDeDonnees --out /chemin/vers/sauvegarde
mongorestore /chemin/vers/sauvegarde