Supprimer des données MongoDB

MongoDBMongoDBBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous allez apprendre à supprimer efficacement des données dans une base de données MongoDB. Vous commencerez par supprimer un seul document, puis explorer les techniques pour effectuer des suppressions massives et supprimer des données en fonction de conditions spécifiques. Enfin, vous allez apprendre à vider une collection entière et à vérifier les résultats de la suppression. Ces compétences sont essentielles pour gérer votre base de données MongoDB et maintenir l'intégrité des données.

Le laboratoire couvre les étapes suivantes : Supprimer un seul document, Effectuer des suppressions massives, Supprimer selon des conditions, Vider les données de la collection et Vérifier les résultats de la suppression. À la fin de ce laboratoire, vous aurez une compréhension solide de la manière de supprimer des données dans MongoDB en utilisant diverses méthodes pour répondre à vos besoins.

Ceci est un Guided Lab, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les instructions pour compléter chaque étape et acquérir une expérience pratique. Les données historiques montrent que c'est un laboratoire de niveau débutant avec un taux de réussite de 97.44%. Il a reçu un taux d'avis positifs de 97.92% de la part des apprenants.

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mongodb(("MongoDB")) -.-> mongodb/BasicOperationsGroup(["Basic Operations"]) mongodb(("MongoDB")) -.-> mongodb/QueryOperationsGroup(["Query Operations"]) mongodb(("MongoDB")) -.-> mongodb/AggregationOperationsGroup(["Aggregation Operations"]) mongodb/BasicOperationsGroup -.-> mongodb/start_mongodb_shell("Start MongoDB Shell") mongodb/BasicOperationsGroup -.-> mongodb/delete_document("Delete Document") mongodb/BasicOperationsGroup -.-> mongodb/bulk_delete_documents("Bulk Delete Documents") mongodb/QueryOperationsGroup -.-> mongodb/find_documents("Find Documents") mongodb/QueryOperationsGroup -.-> mongodb/query_with_conditions("Query with Conditions") mongodb/AggregationOperationsGroup -.-> mongodb/aggregate_group_totals("Aggregate Group Totals") subgraph Lab Skills mongodb/start_mongodb_shell -.-> lab-420822{{"Supprimer des données MongoDB"}} mongodb/delete_document -.-> lab-420822{{"Supprimer des données MongoDB"}} mongodb/bulk_delete_documents -.-> lab-420822{{"Supprimer des données MongoDB"}} mongodb/find_documents -.-> lab-420822{{"Supprimer des données MongoDB"}} mongodb/query_with_conditions -.-> lab-420822{{"Supprimer des données MongoDB"}} mongodb/aggregate_group_totals -.-> lab-420822{{"Supprimer des données MongoDB"}} end

Supprimer un seul document

Dans cette étape, nous allons apprendre à supprimer un seul document dans MongoDB en utilisant la méthode deleteOne(). Tout d'abord, lancez le shell MongoDB :

mongosh

Créons une collection d'échantillons avec quelques documents pour pratiquer la suppression :

use mylab_database
db.users.insertMany([
    { name: "John Doe", age: 30, email: "[email protected]" },
    { name: "Jane Smith", age: 25, email: "[email protected]" },
    { name: "Bob Johnson", age: 35, email: "[email protected]" }
])

Sortie d'exemple :

{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId("..."),
    '1': ObjectId("..."),
    '2': ObjectId("...")
  }
}

Pour supprimer un seul document, nous utiliserons la méthode deleteOne(). Cette méthode vous permet d'enlever un document spécifique sur la base d'un identifiant unique ou d'une condition spécifique :

db.users.deleteOne({ name: "Jane Smith" })

Sortie attendue :

{ acknowledged: true, deletedCount: 1 }

Analysons la commande :

  • deleteOne() supprime seulement le premier document qui correspond aux critères spécifiés
  • Si plusieurs documents correspondent, seul le premier est supprimé
  • La méthode renvoie un objet avec acknowledged (succès de l'opération) et deletedCount (nombre de documents supprimés)

Vérifions la suppression en recherchant tous les utilisateurs :

db.users.find()

La sortie attendue montrera seulement deux documents pour John Doe et Bob Johnson.

Effectuer des suppressions massives

Dans cette étape, nous allons explorer la manière de supprimer plusieurs documents d'un coup en utilisant la méthode deleteMany() dans MongoDB.

Créons quelques données d'échantillonnage :

use mylab_database
db.users.insertMany([
    { name: "Alice Wilson", age: 28, status: "inactive" },
    { name: "Charlie Brown", age: 40, status: "inactive" },
    { name: "David Lee", age: 35, status: "active" },
    { name: "Eve Taylor", age: 45, status: "inactive" }
])

Sortie d'exemple :

{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId("..."),
    '1': ObjectId("..."),
    '2': ObjectId("..."),
    '3': ObjectId("...")
  }
}

Maintenant, utilisez deleteMany() pour supprimer tous les utilisateurs avec le statut "inactif" :

db.users.deleteMany({ status: "inactive" })

Sortie attendue :

{ acknowledged: true, deletedCount: 3 }

Points clés sur deleteMany() :

  • Supprime tous les documents correspondant aux critères spécifiés
  • Renvoie le nombre total de documents supprimés
  • Fournit un moyen efficace de supprimer plusieurs enregistrements simultanément

Vérifiez les documents restants :

db.users.find()

La sortie attendue montrera seulement les utilisateurs actifs dans la collection.

Supprimer selon des conditions

Dans cette étape, nous allons apprendre à supprimer des documents en utilisant des conditions complexes dans MongoDB.

Créez une collection d'échantillonnage :

use mylab_database
db.employees.insertMany([
    { name: "John Doe", age: 25, department: "Sales", salary: 50000 },
    { name: "Jane Smith", age: 35, department: "Marketing", salary: 60000 },
    { name: "Bob Johnson", age: 45, department: "Sales", salary: 55000 },
    { name: "Alice Brown", age: 30, department: "HR", salary: 52000 }
])

Sortie d'exemple :

{
  acknowledged: true,
  insertedIds: {
    '0': ObjectId("..."),
    '1': ObjectId("..."),
    '2': ObjectId("..."),
    '3': ObjectId("...")
  }
}
  1. Supprimez les employés âgés de plus de 40 ans :
db.employees.deleteMany({ age: { $gt: 40 } })

Sortie attendue :

{ acknowledged: true, deletedCount: 1 }

Explication :

  • L'opérateur $gt signifie "plus grand que"
  • Cette commande supprime les documents où l'âge est supérieur à 40
  1. Supprimez les employés du département des ventes avec un salaire inférieur à 55000 :
db.employees.deleteMany({
    department: "Sales",
    salary: { $lt: 55000 }
})

Sortie attendue :

{ acknowledged: true, deletedCount: 1 }

Explication :

  • $lt signifie "moins que"
  • Supprime les documents correspondant à la fois aux conditions de département et de salaire

Vérifiez les documents restants :

db.employees.find()

Vider les données de la collection

Dans cette étape, nous allons explorer les méthodes pour vider complètement les données d'une collection MongoDB.

Créez une collection d'échantillonnage :

db.products.insertMany([
  { name: "Laptop", price: 1000, category: "Electronics" },
  { name: "Smartphone", price: 500, category: "Electronics" },
  { name: "Headphones", price: 100, category: "Electronics" }
])

Méthode 1 : Supprimer tous les documents en utilisant deleteMany() :

db.products.deleteMany({})

Sortie attendue :

{ acknowledged: true, deletedCount: 3 }

Explication :

  • Supprime tous les documents sans supprimer la structure de la collection
  • Le filtre vide {} cible tous les documents

Vérifiez que la collection est vide :

db.products.find()

Méthode 2 : Supprimer l'ensemble de la collection en utilisant drop() :

Reinsérez les données d'échantillonnage :

db.products.insertMany([
  { name: "Laptop", price: 1000, category: "Electronics" },
  { name: "Smartphone", price: 500, category: "Electronics" },
  { name: "Headphones", price: 100, category: "Electronics" }
])

Supprimez la collection :

db.products.drop()

Sortie attendue :

true

Explication :

  • Supprime complètement la collection et ses métadonnées
  • Suppression permanente de l'ensemble de la collection

Tentez de trouver la collection :

db.products.find()

Cela entraînera une erreur indiquant que la collection n'existe plus.

Vérifier les résultats de la suppression

Dans cette étape finale, nous allons explorer des techniques pour vérifier les opérations de suppression dans MongoDB.

Créez une collection d'échantillonnage :

db.employees.insertMany([
    { name: "Alice", department: "HR", salary: 50000 },
    { name: "Bob", department: "Sales", salary: 45000 },
    { name: "Charlie", department: "Marketing", salary: 55000 },
    { name: "David", department: "Sales", salary: 40000 }
])
  1. Supprimez les employés ayant un salaire bas et vérifiez :
db.employees.deleteMany({ salary: { $lt: 45000 } })
const remainingEmployees = db.employees.countDocuments()
print("Remaining employees:", remainingEmployees)

Sortie attendue :

Remaining employees: 5
  1. Vérifiez la suppression en utilisant find() :
const lowSalaryEmployees = db.employees.find({ salary: { $lt: 45000 } }).count()
print("Low salary employees after deletion:", lowSalaryEmployees)

Sortie attendue :

Low salary employees after deletion: 0
  1. Vérifiez les comptages par département spécifique :
const salesEmployees = db.employees.countDocuments({ department: "Sales" })
print("Sales department employees:", salesEmployees)

Sortie attendue :

Sales department employees: 1

Vérification complète :

print("Total employees:", db.employees.countDocuments())
print("Employees by department:")
db.employees.aggregate([
    { $group: { _id: "$department", count: { $sum: 1 } } }
])

La sortie attendue montrera le nombre total d'employés et la répartition par département.

[
  { _id: 'Marketing', count: 2 },
  { _id: 'Sales', count: 1 },
  { _id: 'HR', count: 2 }
]

Sommaire

Dans ce laboratoire, vous avez appris à supprimer des documents individuels en utilisant la méthode deleteOne(), qui supprime le premier document qui correspond aux critères spécifiés. Vous avez également exploré la réalisation de suppressions massives avec la méthode deleteMany(), qui vous permet d'effacer efficacement plusieurs enregistrements qui correspondent à des conditions spécifiques. De plus, vous avez appris à supprimer des documents selon des conditions, à vider les données d'une collection entière et à vérifier les résultats de la suppression.

Les principaux enseignements de ce laboratoire sont les différentes approches de suppression de données dans MongoDB, allant de la suppression de documents individuels à la réalisation de suppressions massives sur la base de critères spécifiques. Ces compétences sont essentielles pour gérer efficacement votre base de données et maintenir l'intégrité des données.

OSZAR »