Supprimer des documents MongoDB

Dans les chapitres précédents, nous avons appris comment ajouter des données à et mettre à jour des données dans des collections MongoDB. Dans ce chapitre, nous allons continuer à apprendre la suppression de collections MongoDB.

Les méthodes courantes de suppression de documents incluent deleteOne(), deleteMany() et findOneAndDelete().

Cas d'utilisation :

  • Nettoyage des données: Supprimer les anciennes données ou les données invalides qui ne sont plus nécessaires.
  • Correction des données: Supprimer les documents erronés ou en double lors de la correction des données.
  • Tâches automatisées: Supprimer des documents selon des conditions spécifiques dans des scripts ou des tâches automatisés.

1、deleteOne()

La méthode deleteOne() est utilisée pour supprimer un seul document qui correspond au filtre.

Syntaxe :

db.collection.deleteOne(filter, options)
  • filter: Les critères de requête utilisés pour trouver le document à supprimer.
  • options: (Facultatif) Un objet de paramètres optionnel.

Exemple

db.myCollection.deleteOne({ name: "Alice" });

Résultat renvoyé :

{
    "acknowledged": true,
    "deletedCount": 1
}

2、deleteMany()

La méthode deleteMany() est utilisée pour supprimer tous les documents qui correspondent au filtre.

Syntaxe :

db.collection.deleteMany(filter, options)
  • filter: Les critères de requête utilisés pour trouver les documents à supprimer.
  • options: (Facultatif) Un objet de paramètres optionnel.

Exemple

db.myCollection.deleteMany({ status: "inactive" });

Résultat renvoyé :

{
    "acknowledged": true,
    "deletedCount": 1
}

3、findOneAndDelete()

La méthode findOneAndDelete() est utilisée pour trouver et supprimer un seul document, et peut éventuellement retourner le document supprimé.

Syntaxe :

db.collection.findOneAndDelete(filter, options)
  • filter: Les critères de requête utilisés pour trouver le document à supprimer.
  • options: Objet de paramètres optionnel, tel queprojection、sortetc.

Exemple

db.myCollection.findOneAndDelete(
    { name: "Charlie" },
    { projection: { name: 1, age: 1 } }
);

findOneAndDelete renvoie le document supprimé ; si aucun document correspondant n'est trouvé, il renvoie null.

Options pour les opérations de suppression

Le paramètre options de ces méthodes de suppression peut généralement inclure les options suivantes :

  • writeConcern: Spécifie le niveau d'acquittement pour l'opération d'écriture.
  • collation: Spécifie la collation à utiliser lors de la comparaison de chaînes.
  • projection(S'applique uniquement àfindOneAndDelete) : Spécifie les champs à renvoyer.
  • sort(S'applique uniquement àfindOneAndDelete) : Spécifie l'ordre de tri pour déterminer le document à supprimer.

Exemple

Supprimer un seul document :

db.myCollection.deleteOne({ name: "Alice" });

Supprimer plusieurs documents :

db.myCollection.deleteMany({ status: "inactive" });

Rechercher et supprimer un seul document :

db.myCollection.findOneAndDelete(
    { name: "Charlie" },
    { projection: { name: 1, age: 1 } }
);
Autres extensions