Opérations CRUD (Create, Read, Update, Delete)
Les opérations CRUD représentent les quatre opérations de base utilisées pour interagir avec les données dans une base de données. Dans le contexte de MongoDB, voici comment vous pouvez effectuer des opérations CRUD en utilisant le pilote MongoDB natif ou Mongoose dans Node.js.
Avec le Pilote MongoDB Natif
-
Create (Créer): Pour insérer des données, utilisez
insertOne()pour un document ouinsertMany()pour plusieurs documents.
const { MongoClient } = require('mongodb');
const url = 'mongodb://localhost:27017';
const dbName = 'mydatabase';
const client = new MongoClient(url);
async function createData() {
try {
await client.connect();
console.log('Connecté à MongoDB');
const db = client.db(dbName);
const collection = db.collection('documents');
// Insertion d'un seul document
const insertResult = await collection.insertOne({ a: 1 });
console.log('Résultat de l\'insertion:', insertResult);
// Insertion de plusieurs documents
// Attention au crochets; bug d'affichages il faut ajouter des crochets dans le json
const multipleInsertResult = await collection.insertMany( [ { b: 1 }, { b: 2 }] );
console.log('Résultat de l\'insertion multiple:', multipleInsertResult);
} finally {
await client.close();
}
}
createData();
-
Read (Lire): Utilisez
find()pour récupérer plusieurs documents oufindOne()pour un seul document.async function readData() { try { await client.connect(); const db = client.db(dbName); const collection = db.collection('documents'); // Trouver un seul document const item = await collection.findOne({ a: 1 }); console.log('Document trouvé:', item); // Trouver plusieurs documents const items = await collection.find({}).toArray(); console.log('Documents trouvés:', items); } finally { await client.close(); } } readData(); -
Update (Mettre à jour): Pour mettre à jour des documents, utilisez
updateOne(),updateMany(), oufindOneAndUpdate().async function updateData() { try { await client.connect(); const db = client.db(dbName); const collection = db.collection('documents'); // Mettre à jour un seul document const updateResult = await collection.updateOne({ a: 1 }, { $set: { b: 1 } }); console.log('Résultat de la mise à jour:', updateResult); // Mettre à jour plusieurs documents const multipleUpdateResult = await collection.updateMany({}, { $set: { b: 1 } }); console.log('Résultat de la mise à jour multiple:', multipleUpdateResult); } finally { await client.close(); } } updateData(); -
Delete (Supprimer): Pour supprimer des documents, utilisez
deleteOne()oudeleteMany().async function deleteData() { try { await client.connect(); const db = client.db(dbName); const collection = db.collection('documents'); // Supprimer un seul document const deleteResult = await collection.deleteOne({ a: 1 }); console.log('Résultat de la suppression:', deleteResult); // Supprimer plusieurs documents const multipleDeleteResult = await collection.deleteMany({ b: 1 }); console.log('Résultat de la suppression multiple:', multipleDeleteResult); } finally { await client.close(); } } deleteData();
Avec Mongoose
-
Create (Créer): Avec Mongoose, vous définissez d'abord un schéma et un modèle, puis utilisez
new Model()ouModel.create().const mongoose = require('mongoose'); // URL de connexion à votre base de données MongoDB const mongoDBUrl = 'mongodb://localhost:27017/nomnouvellebase'; mongoose.connect(mongoDBUrl); const db = mongoose.connection; db.on('error', console.error.bind(console, 'Erreur de connexion MongoDB:')); db.once('open', function() { console.log("Connecté à la base de données MongoDB"); }); // Votre code pour les schémas et modèles ici const { Schema } = mongoose; const userSchema = new Schema({ name: String, age: Number }); const User = mongoose.model('User', userSchema); // Créer un nouvel utilisateur const newUser = new User({ name: 'John Doe', age: 30 }); newUser.save().then(doc => console.log('Nouvel utilisateur créé:', doc)); // Créer plusieurs utilisateurs User.create([{ name: 'Alice' }, { name: 'Bob' }]).then(doc => console.log('Utilisateurs créés:', doc)); -
Read (Lire): Utilisez
Model.find(),Model.findOne(), ouModel.findById()pour lire des documents.// Trouver tous les utilisateurs User.find().then(docs => console.log('Tous les utilisateurs:', docs)); // Trouver un utilisateur par nom User.findOne({ name: 'John Doe' }).then(doc => console.log('Utilisateur trouvé:', doc)); -
Update (Mettre à jour): Utilisez
Model.updateOne(),Model.updateMany(), ouModel.findOneAndUpdate().// Mettre à jour un utilisateur User.updateOne({ name: 'John Doe' }, { $set: { age: 31 } }).then(result => console.log('Résultat de la mise à jour:', result)); // Mettre à jour plusieurs utilisateurs User.updateMany({}, { $set: { age: 30 } }).then(result => console.log('Résultat de la mise à jour multiple:', result)); -
Delete (Supprimer): Utilisez
Model.deleteOne(),Model.deleteMany(), ouModel.findOneAndDelete().// Supprimer un utilisateur User.deleteOne({ name: 'John Doe' }).then(result => console.log('Résultat de la suppression:', result)); // Supprimer plusieurs utilisateurs User.deleteMany({ age: 30 }).then(result => console.log('Résultat de la suppression multiple:', result));
En utilisant ces méthodes, vous pouvez facilement effectuer des opérations CRUD sur votre base de données MongoDB à partir d'une application Node.js. Assurez-vous de gérer correctement les connexions et de traiter les erreurs dans votre code de production pour maintenir la robustesse de votre application.