Ce document est un guide de révision ciblé, conçu en stricte conformité avec les directives de l'enseignant pour l'examen partiel. Son objectif n'est pas de vous faire mémoriser exhaustivement plus d'une centaine de diapositives, mais de consolider votre compréhension des concepts fondamentaux, des architectures et des cas d'usage spécifiques de MongoDB, Redis et InfluxDB. L'accent est mis sur la compétence la plus cruciale qui sera évaluée : la capacité à analyser un besoin, à modéliser les données de manière appropriée et à choisir la base de données la plus adaptée pour y répondre. Ce guide vous aidera à structurer vos connaissances pour justifier vos choix technologiques avec clarté et précision. Commençons par une vue d'ensemble stratégique comparant nos trois systèmes.

Savoir sélectionner l'outil approprié pour un besoin applicatif donné est une compétence capitale en ingénierie logicielle et constitue le cœur de l'évaluation à venir. Chaque base de données NoSQL a été conçue pour exceller dans un domaine particulier. Comprendre ces différences est la première étape vers la maîtrise. Le tableau suivant synthétise les caractéristiques distinctives des trois systèmes étudiés.
| Base de Données | Modèle Principal | Cas d'Usage Clés | Point Fort Principal |
|---|---|---|---|
| MongoDB | Document (JSON) | Données semi-structurées, applications web, catalogues de produits. | Flexibilité du schéma et requêtes complexes. |
| Redis | Clé-Valeur en RAM | Cache, sessions, compteurs, rate limiting, notifications. | Vitesse extrême (opérations en nanosecondes). |
| InfluxDB | Séries Temporelles | Métriques, logs, données IoT, monitoring, finance. | Requêtes temporelles et compression optimisées. |
Maintenant que nous avons une vue d'ensemble, nous allons analyser en détail les spécificités de chaque base de données, en commençant par MongoDB.
Cette section se concentre sur les compétences MongoDB essentielles pour l'examen, telles que présentées dans les travaux dirigés : la capacité à définir un modèle de données via un schéma Mongoose et la maîtrise des opérations CRUD (Create, Read, Update, Delete) de base.
Bien que MongoDB soit flexible, dans une application réelle, nous avons besoin de garantir une structure minimale pour nos données. C'est le rôle de Mongoose et de ses schémas. Un schéma définit la forme des documents au sein d'une collection, en spécifiant les champs, leurs types et des règles de validation.
Les concepts clés à retenir, illustrés dans le schéma Product du TD, sont :
String, Number, Date, etc.) pour garantir la cohérence.required: true assure qu'un champ ne peut pas être omis lors de la création d'un document.default: 0 permet d'assigner une valeur à un champ s'il n'est pas fourni, comme pour la quantité d'un produit.Product à un User avec un champ owner contenant l'ID de l'utilisateur : owner: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }.L'examen se concentrera sur la compréhension des opérations fondamentales pour manipuler les données. Les méthodes Mongoose suivantes, vues dans le fichier controllers.js, sont au cœur de l'interaction avec la base de données.
Product.create() : Utilisée pour créer un nouveau document et le sauvegarder dans la collection. C'est l'opération de création (le "C" de CRUD).Product.find() : Permet de rechercher plusieurs documents qui correspondent à un objet de filtre. Si le filtre est vide, elle retourne tous les documents de la collection. C'est l'opération de lecture (le "R").