Différence entre deleteMany() et Remove() dans MongoDB
deleteMany()
et remove()
sont tous deux utilisés pour supprimer une entrée de MongoDB. Dans la version récente, remove
est marqué comme obsolète.
MongoDB suggère plutôt d’utiliser deleteMany
et deleteOne
. La commande deleteMany
peut accepter un paramètre à faire correspondre avant de supprimer.
Paramètre et retours de deleteMany()
dans MongoDB
Cette méthode vient du mongosh. Généralement, il est utilisé dans la collection pour supprimer les documents d’une collection spécifique.
Voici comment il est utilisé.
db.collection.deleteMany(
<FILTER>,{
writeConcern: <document>,
collation: <document>
}
)
Le <FILTER>
signifie que nous pouvons utiliser notre champ de recherche personnalisé. Disons que nous voulons supprimer tous les produits dont le prix est égal à 30
.
Alors le code sera :
db.collection.deleteMany({
price:30
})
Nous pouvons mettre l’autre paramètre vide ici. Si vous souhaitez supprimer la collection complète, insérez {}
dans le deleteMany
.
En savoir plus sur writeConcern
et collation
.
Paramètre | Taper | La description |
---|---|---|
writeConcern |
Document | C’est un paramètre facultatif. Il met la reconnaissance pour le document. Pour en savoir plus sur writeConcern , visitez ce blog. |
collation |
Document | Il permet à l’utilisateur d’utiliser des règles spécifiques à la langue pour le document. Le classement est un paramètre facultatif. Si vous l’utilisez, vous devez utiliser le champ local . En savoir plus sur la collation . |
deleteMany()
renvoie acknowledged
comme true
si la fonction s’exécute avec le paramètre writeConcern
; sinon, false
. Il renvoie également le deleteCount
, qui fait référence au nombre de documents supprimés.
deleteMany
supprime tous les documents qui correspondent au filtre.
Un exemple de retour peut ressembler à ce qui suit.
{ "acknowledged" : true, "deletedCount" : 9 }
Paramètre et retours de remove()
dans MongoDB
La méthode remove()
a deux fonctionnalités. Il peut également agir comme deleteMany
et deleteOne
.
Le code du modèle pour le remove()
est ici.
db.collection.remove(
<query>,
<justOne>
)
Généralement, ces deux paramètres sont utilisés. En outre, vous pouvez étendre cela aux éléments suivants.
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>,
collation: <document>
}
)
Le writeConcern
et le collation
sont les mêmes que ceux que nous avons discutés ci-dessus pour le deleteMany()
. Ici, nous pouvons utiliser la query
à la place d’un filtre.
Pour en savoir plus sur la query
dans MongoDB, vous pouvez visiter le lien suivant.
Si nous passons un objet vide dans la méthode remove
, cela supprimera tous les documents de la collection. Par exemple, supposons que vous ayez une collection product
et que vous souhaitiez supprimer tous les produits dont le prix est inférieur à 5.
La commande sera alors :
db.products.remove(
{price:{ $lt: 5}}
)
Si nous mettons cette commande, le paramètre justOne
sera par défaut false
. Maintenant, si vous souhaitez supprimer un seul élément pour la même requête, la commande ressemblera à la suivante.
db.products.remove(
{price:{ $lt: 5}}, true
)
Cette méthode renvoie un objet appelé WriteResult
, qui a les paramètres suivants.
WriteResult({ "nRemoved" : 10 })
Il a aussi writeError
et writeConcern
; ceux-ci sont liés à writeConcern
ci-dessus.
Le remove()
est obsolète dans la dernière version de MongoDB. Ainsi, lors du développement de l’application NodeJS, vous ne devez utiliser que deleteOne
ou deleteMany
.
Pour en savoir plus sur remove()
, visitez les sites Web suivants.