Manipulation efficace des opérations CRUD
Insertions
Insertion de documents individuels et multiples
- Utiliser
insertOne()
pour insérer un document individuel
- Utiliser
insertMany()
pour insérer plusieurs documents à la fois
- Exemple :
db.collection.insertOne({ field1: "value1", field2: "value2" })
Meilleures pratiques pour l'insertion de données
- Valider les données avant l'insertion
- Utiliser des identifiants uniques et significatifs pour le champ
_id
- Insérer des documents de taille similaire pour éviter la fragmentation
Requêtes
Utilisation d'opérateurs avancés de requête
$gt
, $gte
, $lt
, $lte
pour les comparaisons numériques
$in
, $nin
pour vérifier si un champ est dans une liste de valeurs
$regex
pour les expressions régulières
- Exemple :
db.collection.find({ age: { $gte: 18, $lt: 65 } })
- Utiliser
find()
pour filtrer les documents
- Utiliser
sort()
pour trier les résultats (1 pour croissant, -1 pour décroissant)
- Utiliser
skip()
et limit() pour la pagination
- Exemple :
db.collection.find({}).sort({ age: 1 }).skip(10).limit(10)
Projection de champs
- Utiliser la projection pour limiter les champs renvoyés
- Valeur
1
pour inclure un champ, 0
pour l'exclure
- Exemple :
db.collection.find({}, { field1: 1, field2: 0 })
Mises à jour
Mise à jour de documents individuels et multiples
- Utiliser
updateOne()
pour mettre à jour un document individuel
- Utiliser
updateMany()
pour mettre à jour plusieurs documents à la fois
- Exemple :
db.collection.updateOne({ _id: id }, { $set: { field1: "newValue" } })
Utilisation d'opérateurs de mise à jour avancés
$set
, $unset
pour ajouter ou supprimer des champs
$inc
, $mul
, $min
, $max
pour modifier les valeurs numériques
$push
, $pop
, $addToSet
, $pull
pour manipuler des tableaux
- Exemple :
db.collection.updateOne({ _id: id }, { $inc: { counter: 1 } })
Mises à jour atomiques
- Utiliser
findAndModify()
pour effectuer une mise à jour atomique
- Les opérations sont effectuées en une seule étape, sans risque de conflits
- Exemple :
db.collection.findAndModify({ query: { _id: id }, update: { $set: { field1: "newValue" } } })
Suppressions
Suppression de documents individuels et multiples
- Utiliser
deleteOne()
pour supprimer un document individuel
- Utiliser
deleteMany()
pour supprimer plusieurs documents à la fois
- Exemple :
db.collection.deleteOne({ _id: id })
Meilleures pratiques pour la suppression de données
- Supprimer les données en fonction des besoins métier (date d'expiration, archivage, etc.)
- Utiliser des index pour accélérer les suppressions
- Planifier les suppressions pendant les périodes de faible charge pour minimiser l'impact sur les performances
- Utiliser les index TTL (Time-To-Live) pour supprimer automatiquement les documents après un certain temps