Operaciones DELETE en MongoDB

En anteriores entradas os enseñamos como realizar consultas SELECT en MongoDB, y operaciones UPDATE en MongoDB. Adicionalmente creamos esta entrada para realizar operaciones INSERT en MongoDB con NodeJS. En esta entrada de hoy queríamos completar el ciclo y mostraros cómo realizar operaciones DELETE en MongoDB. Comencemos.

Operaciones DELETE en T-SQL

Antes de indagar en cómo se realizar un DELETE o borrado en MongoDB, vamos a compararlo con cómo se realiza en las bases de datos relacionales. En este tipo de base de datos, como SQL Server, MySQL, MariaDB… se realizan consultas a la base de datos. En este caso del DELETE sería por ejemplo:

Para borrar todos los registros de la tabla usuarios:

DELETE FROM usuarios

En cambio, si queremos borrar todos los registros que cumplan alguna condición, por ejemplo que estén marcados como dados de baja, debemos usar:

DELETE FROM usuarios WHERE baja = "Yes"

Si solo hay que borrar un registro concreto, por email por ejemplo, usaremos:

DELETE FROM usuarios WHERE email = "email_a_borrar@email.com"

Si os fijáis todos empiezan por «DELETE FROM tabla» más si es necesario (y lo más habitual), algunas condiciones. No se modifica la consulta en función de si se elimina un registro o varios. En MongoDB esto es diferente, ya que sí que cambia la consulta como veremos a continuación.

Operaciones DELETE en MongoDB

¿Cómo se realiza un DELETE en MongoDB?

Como hemos comentado, varía en función de si se eliminan uno o varios registros. Para que se vea mejor vamos a simular los mismos borrados que hemos realizado antes en T-SQL, pero con MongoDB. De esta forma se podrá ver la diferencia entre ambos.

Para borrar todos los usuarios de una tabla, como usuarios, debemos especificar la tabla, y usar «deleteMany» sin parámetros. Al no especificarle ninguna condición, borrará todo el contenido.

db.usuarios.deleteMany({})

Para borrar los usuarios dados de baja utilizaríamos la misma función pero con parámetros:

db.usuarios.deleteMany({ baja : "Yes" })

En el caso de que solo queramos borrar un elemento pasándole un valor específico propio de ese documento como algún ID, email, o alguna forma única de identificación, deberíamos usar «deleteOne«:

db.usuarios.deleteOne( { email : "email_a_borrar@email.com" } )

Como veis, la forma de trabajar es muy parecida, únicamente tenéis que tener en cuenta si hay que borrar un documento en concreto, o varios.

Esperamos que esta entrada os haya gustado. Estate al día de todas nuestras publicaciones en nuestra newsletter. Con solo un email al mes, estarás al día de todas nuestras entradas. Nos vemos en la siguiente.

¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.

Sígue a GPS en LinkedIn

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *