Dans MongoDB, si vous avez besoin de supprimer un document dans le shell mongo, vous pouvez utiliser :
- Le
db.collection.remove()
méthode - Le
delete
commande - Le
db.collection.deleteOne()
méthode - Le
db.collection.deleteMany()
méthode
Cet article fournit des exemples de chacun.
Le db.collection.remove()
Méthode
Le db.collection.remove()
La méthode supprime (c'est-à-dire supprime) les documents d'une collection. Vous pouvez supprimer tous les documents, certains documents ou un seul document selon vos besoins.
Voici un exemple de suppression d'un document spécifique.
db.employees.remove({ "_id": 3 })
Résultat :
WriteResult({ "nRemoved" : 1 })
Cela supprime le document avec un _id
valeur de 3
des employees
collecte.
Il ne doit pas nécessairement correspondre à un seul document. Les critères de filtre peuvent correspondre à plusieurs documents, et vous pouvez même laisser les critères de filtre vides pour correspondre à tous les documents (c'est-à-dire supprimer tous les documents).
Voici un exemple de suppression de tous les documents :
db.employees.remove({})
Résultat :
WriteResult({ "nRemoved" : 5 })
Le résultat nous montre que cinq documents ont été supprimés (donc la collection contenait évidemment cinq documents avant que nous ne les supprimions tous).
Le remove()
la méthode accepte également un justOne
paramètre pour limiter la suppression à un seul document. Cela supprime le premier document qui correspond aux critères de suppression.
Exemple :
db.employees.remove({}, "justOne: true")
Résultat :
WriteResult({ "nRemoved" : 1 })
Dans ce cas, notre critère de filtre est un document vide, et il correspond donc à tous les documents de la collection. Cependant, un seul document est supprimé, car nous utilisons justOne: true
.
Le delete
Commande
Le delete
La commande fait exactement la même chose que la commande remove()
méthode. En fait, le remove()
méthode utilise la commande delete.
Voici un exemple de suppression d'un document spécifique avec le delete
commande.
db.runCommand(
{
delete: "employees",
deletes: [ { q: { _id: 4 }, limit: 1 } ]
}
)
Résultat :
{ "n" : 1, "ok" : 1 }
Le db.collection.deleteOne()
Méthode
Le db.collection.deleteOne()
méthode est similaire à db.collection.remove()
méthode, sauf qu'elle supprime un seul document de la collection spécifiée.
Il accepte une condition de filtre, tout comme db.collection.remove()
.
Exemple :
db.employees.deleteOne({ "_id": 4 })
Résultat :
{ "acknowledged" : true, "deletedCount" : 1 }
Cela a supprimé le numéro d'employé 4.
Si vous fournissez un filtre plus large qui renvoie plusieurs documents, il ne supprime que le premier.
Par exemple, ce qui suit supprime le premier document de la collection, quel que soit le nombre de documents dans la collection :
db.employees.deleteOne({})
Le db.collection.deleteOne()
peut être une méthode pratique à utiliser si vous craignez de supprimer accidentellement plusieurs documents. Le plus de documents qu'il supprimera est un, donc si vous faites une erreur "gros doigt", vous ne supprimerez pas accidentellement tous les documents de la collection (à moins bien sûr qu'il n'y ait qu'un seul document dans la collection).
Le db.collection.deleteMany()
Méthode
Le db.collection.deleteMany()
la méthode est similaire à db.collection.deleteOne()
sauf qu'il peut supprimer plusieurs documents.
En fait, c'est probablement plus comme remove()
, car il peut supprimer plusieurs documents et un seul document (bien qu'il n'ait pas le justOne
paramètre comme remove()
fait).
Cette méthode peut être pratique si vous souhaitez supprimer tous les documents correspondant à un critère donné.
Exemple :
db.employees.deleteMany({ "salary": { $gt: 80000 } })
Résultat :
{ "acknowledged" : true, "deletedCount" : 2 }
Cela a supprimé tous les documents qui ont un salary
champ supérieur à 80 000. Dans ce cas, seuls deux documents correspondent, mais il peut s'agir de n'importe quel nombre.
Vous pouvez également utiliser db.collection.deleteMany()
pour supprimer tous les documents de la collection.
Exemple :
db.employees.deleteMany({})
Résultat :
{ "acknowledged" : true, "deletedCount" : 5 }
Dans ce cas, il y avait cinq documents dans la collection et tous les cinq ont été supprimés.
Plus d'informations
Les méthodes ci-dessus acceptent également un certain nombre d'arguments facultatifs, tels que writeConcern
et collation
.
deleteOne()
et deleteMany()
accepter également un hint
arguments.
Vous trouverez ci-dessous des liens vers la documentation MongoDB pour chaque méthode/commande :
db.collection.remove()
delete
db.collection.deleteOne()
db.collection.deleteMany()