Breaking

vendredi 13 février 2026

COURS COMPLET NOSQL (MONGODB) - CRUD & GESTION DE BASES DE DONNÉES

Cours complet MongoDB · 40 QCM inclus

🍃 Cours complet MongoDB · CRUD & gestion

7 modules interactifs + 40 QCM avec correction

🍃 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
🍃 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