Qu'est-ce que Mongoose et pourquoi en a-t-on besoin ?
\n\nMongoose est une bibliothèque Object Data Modeling (ODM) pour MongoDB et Node.js. Elle fournit une manière puissante, basée sur des schémas, de modéliser les données de votre application. Si vous travaillez avec MongoDB dans un environnement Node.js, Mongoose est la norme de facto pour la gestion des données.
\n\nPourquoi en a-t-on besoin ? MongoDB est une base de données NoSQL qui stocke les données sous forme de documents de type JSON. Contrairement aux bases de données relationnelles, elle n'exige pas de schéma strict. Cela offre de la flexibilité, mais peut conduire au chaos dans les grands projets. Mongoose résout ce problème en ajoutant une couche d'abstraction qui :
\n\n- \n
- Définit des schémas (Schemas) : Vous décrivez la structure de vos documents : quels champs existent, de quel type ils sont, quelles sont les valeurs par défaut, s'ils sont obligatoires. \n
- Valide les données : Avant de les enregistrer dans la base de données, Mongoose vérifie que les données correspondent à votre schéma. Cela empêche l'écriture de données "indésirables". \n
- Fournit des méthodes pratiques : Au lieu d'écrire des requêtes brutes vers MongoDB, vous utilisez des méthodes intuitives comme
.find(),.create(),.updateOne(). \n - Gère les relations : Vous pouvez facilement lier des documents de différentes collections (par exemple, un utilisateur et ses commandes) à l'aide de
populate(). \n - Middleware (hooks) : Permet d'exécuter du code avant ou après certaines opérations (par exemple, hacher un mot de passe avant de l'enregistrer). \n
En termes simples : Mongoose est un "pont" entre votre code JavaScript et MongoDB, qui rend le travail avec la base de données structuré, sécurisé et pratique.
\n\nInstallation de Mongoose
\n\nL'installation de Mongoose dans votre projet Node.js se fait via npm (Node Package Manager). Assurez-vous d'avoir Node.js et npm installés.
\n\nOuvrez un terminal à la racine de votre projet et exécutez la commande :
\n\nnpm install mongoose\n\nCette commande installera la dernière version stable de Mongoose et l'ajoutera à votre fichier package.json dans la section dependencies.
Vous aurez également besoin d'un serveur MongoDB installé et en cours d'exécution. Vous pouvez l'installer localement ou utiliser un service cloud comme MongoDB Atlas.
\n\nDémarrage rapide avec un exemple de code
\n\nCréons une application simple qui se connecte à MongoDB et enregistre des informations sur un utilisateur.
\n\n- \n
- Connecter Mongoose à la base de données : \n
// app.js\nconst mongoose = require('mongoose');\n\n// Chaîne de connexion à MongoDB (remplacez 'mydatabase' par le nom de votre BD)\nconst mongoURI = 'mongodb://localhost:27017/mydatabase';\n\nmongoose.connect(mongoURI)\n .then(() => console.log('Connecté avec succès à MongoDB !'))\n .catch(err => console.error('Erreur de connexion :', err));\n\n- \n
- Définir le schéma et le modèle : \n
// Définir le schéma (Schema) pour l'utilisateur\nconst userSchema = new mongoose.Schema({\n name: { type: String, required: true },\n email: { type: String, required: true, unique: true },\n age: { type: Number, default: 18 }\n});\n\n// Créer le modèle (Model) basé sur le schéma\nconst User = mongoose.model('User', userSchema);\n\n- \n
- Créer et enregistrer un document : \n
async function createUser() {\n try {\n // Créer une instance du modèle\n const newUser = new User({\n name: 'Ivan Ivanov',\n email: 'ivan@example.com',\n age: 30\n });\n\n // Enregistrer l'utilisateur dans la base de données\n const savedUser = await newUser.save();\n console.log('Utilisateur enregistré :', savedUser);\n } catch (error) {\n console.error('Erreur lors de l'enregistrement