🍃 Cours complet MongoDB · CRUD & gestion
7 modules interactifs + 40 QCM avec correction
📋 Table des matières
Module 3·4
Module 5·6
Module 7·8
Module 9
🍃 1️⃣
Introduction & architecture
MongoDB : base NoSQL orientée documents (BSON). Une instance contient plusieurs bases, chaque base contient des collections (flexibles).
NoSQLBSONdocumentcollection
{
"_id": ObjectId("65a1b2c3d4e5f6a7b8c9d0e1"),
"nom": "Jean Dupont",
"email": "jean@example.com",
"age": 32,
"adresse": {
"rue": "123 Avenue Paris",
"ville": "Paris",
"code_postal": "75001"
},
"competences": ["MongoDB", "Node.js"]
}
🍃 2️⃣
Bases de données
show dbs, use, db, dropDatabase()
show dbs
use entreprise_db
db
db.dropDatabase()
📤 Résultats : switched to db entreprise_db → { "ok": 1 }
🍃 3️⃣
Gestion des collections
show collections, createCollection (explicite ou implicite), renameCollection, drop
show collections
db.createCollection("clients")
db.clients.renameCollection("customers")
db.customers.drop()
📤 Résultat create : { "ok": 1 }
drop : true
drop : true
🍃 4️⃣
CREATE – Insertion
insertOne, insertMany
db.employes.insertOne({
nom: "Alice Martin",
age: 28,
salaire: 45000,
actif: true
})
db.employes.insertMany([
{ nom: "Bob Dupont", age: 35, salaire: 55000 },
{ nom: "Carole Petit", age: 29, salaire: 42000 }
])
📤 Résultat : acknowledged: true, insertedId / insertedIds
🍃 5️⃣
READ – find, findOne
find(), findOne(), filtres, projection
db.employes.find()
db.employes.findOne({ nom: "Alice Martin" })
db.employes.find({ actif: true })
db.employes.find(
{ salaire: { $gt: 45000 } },
{ nom: 1, salaire: 1, _id: 0 }
)
📤 Exemple projection : [ { "nom": "Bob Dupont", "salaire": 55000 } ]
🍃 6️⃣
UPDATE – modifier
updateOne, updateMany, $set, $mul, $inc, $push, replaceOne
db.employes.updateOne(
{ nom: "Alice Martin" },
{ $set: { salaire: 48000 }, $inc: { prime: 1 } }
)
db.employes.updateMany(
{ actif: true },
{ $mul: { salaire: 1.05 } }
)
db.employes.replaceOne(
{ nom: "David Lemoine" },
{ nom: "David Lemoine", statut: "retraité" }
)
📤 Résultat : matchedCount, modifiedCount
🍃 7️⃣
DELETE – supprimer
deleteOne, deleteMany, deleteMany({}) vide la collection
db.employes.deleteOne({ nom: "David Lemoine" })
db.employes.deleteMany({ actif: false })
db.employes.deleteMany({}) // tous les documents
📤 Résultat : { "acknowledged": true, "deletedCount": n }
🍃 8️⃣
Opérateurs comparaison
$eq, $ne, $gt, $gte, $lt, $lte, $in, $nin
db.employes.find({ age: { $gt: 30 } })
db.employes.find({ poste: { $in: ["Dev", "Designer"] } })
db.employes.find({ salaire: { $lte: 50000 } })
🍃 9️⃣
Logiques & array
$and, $or, $push, $addToSet, $pull
db.employes.find({
$and: [ { actif: true }, { salaire: { $gte: 40000 } } ]
})
db.employes.updateOne(
{ nom: "Alice Martin" },
{ $push: { competences: "Node.js" } }
)
db.employes.updateOne(
{ nom: "Bob Dupont" },
{ $pull: { competences: "Scrum" } }
)
🍃 🔟
Récapitulatif
Workflow typique : use → insert → find → update → delete
use boutique
db.produits.insertOne({ nom: "Laptop", prix: 999 })
db.produits.find()
db.produits.updateOne({ nom: "Laptop" }, { $inc: { stock: 5 } })
db.produits.deleteOne({ nom: "Laptop" })
🍃 1️⃣1️⃣
Exercices recommandés
1. Créez une base "boutique", collection "produits". Insérez 5 produits.
2. Trouvez les produits de catégorie "Électronique".
3. Augmentez les prix de 10%.
4. Supprimez les produits en stock = 0.
📋 40 QCM MongoDB – Testez vos connaissances
Choisissez une réponse, puis cliquez sur Vérifier. En cas d'erreur, la bonne réponse est affichée.
1 Quelle commande liste toutes les bases de données ?
2 Comment basculer vers la base "test" ?
3 Quelle commande supprime la base courante ?
4 Comment lister les collections de la base courante ?
5 Quelle commande insère un seul document ?
6 Laquelle de ces commandes lit tous les documents ?
7 Quel opérateur teste la supériorité (strict) ?
8 Comment projeter uniquement le champ "nom" ?
9 Quelle commande modifie un seul document ?
10 $inc est utilisé pour :
11 Comment ajouter "Node.js" à un tableau competences ?
12 Quelle commande supprime plusieurs documents ?
13 Le format de stockage interne de MongoDB est :
14 Quel opérateur signifie "dans la liste" ?
15 Pour multiplier un champ par 1.1, on utilise :
16 Comment récupérer la base courante ?
17 L'opérateur $and est-il nécessaire quand on a plusieurs conditions dans un objet ?
18 Quelle commande vide une collection (supprime tous les documents) ?
19 L'_id est généré automatiquement si absent. De quel type est-il ?
20 Que retourne findOne() si aucun document trouvé ?
21 Pour créer une collection "logs" de taille fixe (capped), on utilise :
22 La méthode renameCollection s'appelle :
23 $set peut être utilisé pour :
24 L'opérateur $pull sert à :
25 Pour remplacer entièrement un document (sauf _id), on utilise :
26 La commande show dbs n'affiche pas les bases vides. Pour afficher la base courante vide, on peut :
27 Comment ajouter une valeur à un tableau sans doublon ?
28 Quel opérateur combine plusieurs conditions avec un ET logique ?
29 Que signifie le préfixe $ dans les opérateurs ?
30 Pour supprimer un champ d'un document, on utilise :
31 La méthode find().pretty() :
32 Comment limiter le nombre de résultats à 5 ?
33 $lt signifie :
34 Pour obtenir le nombre de documents dans une collection :
35 L'opérateur $regex permet de :
36 MongoDB est une base de données :
37 L'opérateur $nin signifie :
38 Comment trier les résultats par âge croissant ?
39 La projection { champ: 0 } signifie :
40 Pour supprimer une collection entière, on utilise :
Aucun commentaire:
Enregistrer un commentaire