Diferencia entre deleteMany() y Remove() en MongoDB

Shihab Sikder 30 enero 2023
  1. Parámetro y Devoluciones de deleteMany() en MongoDB
  2. Parámetro y Devoluciones de remove() en MongoDB
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.

Shihab Sikder avatar Shihab Sikder avatar

I'm Shihab Sikder, a professional Backend Developer with experience in problem-solving and content writing. Building secure, scalable, and reliable backend architecture is my motive. I'm working with two companies as a part-time backend engineer.

LinkedIn Website