Diferencia entre deleteMany() y Remove() en MongoDB
deleteMany()
y remove()
se utilizan para eliminar entradas de MongoDB. En la versión reciente, remove
está marcado como obsoleto.
Más bien, MongoDB sugiere usar deleteMany
y deleteOne
. El comando deleteMany
puede aceptar un parámetro para que coincida antes de eliminarlo.
Parámetro y Devoluciones de deleteMany()
en MongoDB
Este método es del mongosh. Generalmente, se usa en la colección para eliminar los documentos de una colección específica.
Así es como se usa.
db.collection.deleteMany(
<FILTER>,{
writeConcern: <document>,
collation: <document>
}
)
El <FILTER>
representa que podemos usar nuestro campo de búsqueda personalizado. Digamos que queremos eliminar todos los productos cuyo precio sea 30
.
Entonces el código será:
db.collection.deleteMany({
price:30
})
Podemos poner el otro parámetro vacío aquí. Si desea eliminar la colección completa, inserte {}
en deleteMany
.
Aquí hay más sobre writeConcern
y collation
.
Parámetro | Escribe | Descripción |
---|---|---|
writeConcern |
Documento | Es un parámetro opcional. Pone reconocimiento por el documento. Para saber más sobre writeConcern , visita este blog. |
collation |
Documento | Permite al usuario utilizar reglas específicas del idioma para el documento. La intercalación es un parámetro opcional. Si lo usa, necesita usar el campo local . Aquí hay más sobre la collation . |
deleteMany()
devuelve reconocido
como true
si la función se ejecuta con el parámetro writeConcern
; de lo contrario, false
. También devuelve deleteCount
, que se refiere a cuántos documentos se eliminaron.
deleteMany
elimina todos los documentos que coinciden con el filtro.
Una devolución de muestra puede tener el siguiente aspecto.
{ "acknowledged" : true, "deletedCount" : 9 }
Parámetro y Devoluciones de remove()
en MongoDB
El método remove()
tiene dos funcionalidades. También puede actuar como deleteMany
y deleteOne
.
El código de la plantilla para remove()
está aquí.
db.collection.remove(
<query>,
<justOne>
)
En general, se utilizan estos dos parámetros. Además, puede extender esto a lo siguiente.
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>,
collation: <document>
}
)
writeConcern
y collation
son los mismos que discutimos anteriormente para deleteMany()
. Aquí podemos usar la query
en lugar de un filtro.
Para saber más sobre la query
en MongoDB, puede visitar el siguiente enlace.
Si pasamos un objeto vacío en el método remove
, eliminará todos los documentos de la colección. Por ejemplo, supongamos que tiene una colección de product
y desea eliminar todos los productos con un precio inferior a 5.
Entonces el comando será:
db.products.remove(
{price:{ $lt: 5}}
)
Si ponemos este comando, el parámetro justOne
por defecto será false
. Ahora, si desea eliminar solo un elemento para la misma consulta, el comando será como el siguiente.
db.products.remove(
{price:{ $lt: 5}}, true
)
Este método devuelve un objeto llamado WriteResult
, que tiene los siguientes parámetros.
WriteResult({ "nRemoved" : 10 })
También tiene writeError
y writeConcern
; estos están relacionados con writeConcern
anterior.
El remove()
está en desuso en la versión posterior de MongoDB. Entonces, mientras desarrolla la aplicación NodeJS, solo debe usar deleteOne
o deleteMany
.
Para saber más sobre remove()
, visite los siguientes sitios web.