Mongoose pour JavaScript (Node.js) : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que Mongoose et pourquoi en a-t-on besoin ?

\n\n

Mongoose 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\n

Pourquoi 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
\n\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\n

Installation de Mongoose

\n\n

L'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\n

Ouvrez un terminal à la racine de votre projet et exécutez la commande :

\n\n
npm install mongoose
\n\n

Cette commande installera la dernière version stable de Mongoose et l'ajoutera à votre fichier package.json dans la section dependencies.

\n\n

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\n

Démarrage rapide avec un exemple de code

\n\n

Créons une application simple qui se connecte à MongoDB et enregistre des informations sur un utilisateur.

\n\n
    \n
  1. Connecter Mongoose à la base de données :
  2. \n
\n\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
  1. Définir le schéma et le modèle :
  2. \n
\n\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
  1. Créer et enregistrer un document :
  2. \n
\n\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                    

Recommendations