Consejos Tecnológicos

¿Cómo eliminar documentos en MongoDB?

MongoDB es la base de datos NoSQL más popular, que almacena datos como documentos.El archivo es básicamente JSON Objetos, hay muchas formas de eliminarlos.También podemos eliminar estos archivos a través de la GUI MongoDB Brújula o Atlas MongoDB. Pero en este artículo, aprenderemos a eliminarlo a través de la herramienta de línea de comandos del shell de Mongo.

prerrequisitos

Usamos Windows 10 en este tutorial. Asegúrese de haber descargado e instalado MongoDB Community Server. Es fácil de configurar, debe asegurarse de haberlo agregado a las variables de entorno de su PC.

Cuatro caminos

A continuación, aprenderemos cuatro formas de eliminar documentos MongoDB a través del shell de Mongo. Estas cuatro formas son-

  • Métodos db.collection.remove ()
  • Pedido Eliminar
  • Métodos db.collection.deleteOne ()
  • Métodos db.collection.deleteMany ()

Una vez que hayamos instalado el shell mongo en el sistema, podemos ingresar al terminal y teclear MongoSi todo está bien, iniciaremos sesión en el shell. Además, asegúrese de haber instalado MongoDB localmente, que se ejecuta a través de Compass o comandos mongod.

En el shell de Mongo, podemos ver todas las bases de datos utilizadas. Mostrar base de datos Luego cambie a la base de datos en la que queremos trabajar, use usar Pedido

Método db.collection.remove ()

Con este método, podemos eliminar todos los documentos, algunos documentos o un solo documento. Especificamos un parámetro en él, según el cual se eliminará la cantidad de documentos.

Publicaciones relacionadas

En nuestra base de datos employeeDB, tenemos una colección llamada empleados. Hay 3 registros en nuestra colección de empleados.

Eliminaremos a todos los empleados de 39 años a través de una orden db.employees.remove ({«edad»: 39}) En este caso, solo elimina un registro porque solo un empleado es elegible.

También podemos limitar la eliminación a un solo registro estableciendo el parámetro justOne en verdadero. En este método, pasamos un objeto vacío y eliminamos el primer registro.

Agregamos los dos documentos eliminados nuevamente.Ahora podemos borrar todos los documentos usando el comando db.employees.remove ({}).

Comando: borrar

El comando de eliminación también se puede utilizar para eliminar documentos de la colección de dB de Mongo. Internamente, el método de eliminación también utiliza el comando de eliminación. Ahora, el comando de eliminación debe ejecutarse con db.runCommand (), y debemos pasarle un objeto. Aquí, la clave de eliminación contendrá el nombre de la colección. La clave de eliminación contendrá una matriz que contendrá una consulta y también se pueden establecer variables de límite.

Con el siguiente comando, eliminamos los empleados que tienen 38 años limitando el recuento a 1.

db.runCommand( 
   { 
      delete: "employees", 
      deletes:  [ { q: { age: 38 }, limit: 1 } ] 
   } 
) 

Por lo tanto, cuando emitimos este comando, solo se eliminará un registro.

Método db.collection.deleteOne ()

El método db.collection.deleteOne () es similar al método db.collection.remove (), pero hay una cláusula especial que solo elimina un documento. Vimos un ejemplo del método db.collection.remove () antes, pero también se puede usar para otras configuraciones.

Pero el método db.collection.deleteOne () solo puede eliminar un documento. Agregamos algunos documentos a la colección de empleados.

Ahora, ejecute el comando db.employees.deleteOne ({«age»: 39}) en el shell mongo y eliminará el primer empleado, que es Parag.

Ahora el empleado Parag ha sido eliminado de nuestra colección de empleados.

También podemos eliminar el primer documento de la colección sin pasar ningún parámetro.El comando es db.employees.deleteOne ({}), En nuestro ejemplo. Simplemente eliminará el documento, que es el primero de la colección.

Ahora, el empleado Amit ha sido eliminado de la colección de empleados porque está en la parte superior de nuestra colección.

Método db.collection.deleteMany ()

El método db.collection.deleteMany () es casi similar al método db.collection.remove (), pero hay una cláusula especial que elimina muchos documentos. Necesitamos pasarle un parámetro / filtro, y eliminará los documentos basados ​​en él. Cuando todos los documentos coinciden con los filtros de la colección, borra todos los documentos. Usando el método db.collection.deleteOne (), solo podemos eliminar un documento, incluso si las condiciones de muchos documentos coinciden.

Pero no tenemos tal restricción en el método db.collection.deleteMany (). De hecho, también podemos eliminar todos los documentos de la colección. Veremos ejemplos de ambos a continuación.

Nuevamente agregamos documentos a nuestra colección de empleados a través de MongoDB Compass en la instancia de MongoDB instalada localmente. Tenga en cuenta que tenemos 3 empleados que tienen más de 38 años.

Ahora, queremos eliminar los documentos de todos los empleados que tengan más de 38 años.Para ello usaremos el comando db.employees.deleteMany ({«edad»: {$ gt: 38}}) Eliminará a tres empleados de nuestra colección.

Ahora, cuando miramos la colección de empleados en MogoDB Compass, podemos ver que tres empleados con una edad de 39 años han sido eliminados de la colección.

Ahora, para eliminar todos los documentos de la colección, usamos el siguiente comando db.employees.deleteMany ({}) Eliminará a los dos empleados a los que se les recuerda de nuestra colección de empleados.

Ahora, nuestra colección de empleados no tiene documentos.

Eliminar a través de MongoDB Compass

También podemos utilizar la herramienta gratuita de MongoDB Compass para eliminar documentos.Para instalar MongoDB Compass, simplemente vaya a https://www.mongodb.com/ Coloca el cursor sobre el producto y haz clic en la herramienta. empresaAprobar.

En la página siguiente, simplemente haga clic en el botón descargar ahora y nos llevará a la página siguiente.

Aquí, tenemos que hacer clic en la brújula MongoDB nuevamente y descargar un archivo zip. Solo necesitamos instalarlo después de descomprimir el archivo zip.

Después de instalar Compass, simplemente ábralo y haga clic en el botón «Conectar», y nos conectará a la instancia de MongoDB instalada localmente. Tenga en cuenta que también podemos proporcionar cadenas de conexión desde bases de datos MongoDB basadas en la nube, como MongoDB Atlas.

Hemos creado varias bases de datos. Pero cuando inicie MongoDB por primera vez, solo verá la base de datos de administración.Entraremos en un proyecto llamado Base de datos de empleados, Haciendo clic en él.

Aquí, tenemos una colección de empleados con cuatro documentos. Simplemente haga clic en la colección.

Nos mostrará estos cuatro archivos. Ahora pase el mouse sobre el documento que desea eliminar y aparecerán cuatro botones pequeños. Ahora, haga clic en el icono de eliminar.

Nos pedirá que apruebemos la eliminación del archivo. Simplemente haga clic en el botón «Eliminar».

Y se eliminará el documento del empleado llamado Parag.

Problema de atomicidad

La atomicidad es parte del atributo ACID en la base de datos. Ahora, ACID significa atomicidad, consistencia, aislamiento y durabilidad. Todas las bases de datos relacionales tradicionales, como Oracle, Mi SQAumento Es de naturaleza ácida. La atomicidad es el atributo más importante en ACID, lo que significa que si hay una serie de operaciones en la base de datos, entonces todo sucederá o no sucederá nada.

MongoDB y otras bases de datos NoSQL nunca fueron diseñadas para atributos ACID. MongoDB se creó específicamente para la escalabilidad.Entonces, si tenemos una declaración de caída, la declaración de actualización, O elimine declaraciones en MongoDB, se garantiza que serán atómicas solo en las siguientes ubicaciones Esta Nivel de documento único.Estas operaciones también se denominan operaciones de escritura., Y solo son atómicos a nivel de documento único.

Ahora, si nuestro único documento contiene varios subdocumentos, aún se puede garantizar que sea atómico y, si falla, se producirá una reversión automática, como en una base de datos relacional. Sin embargo, si la operación de escritura involucra varios documentos, no se puede garantizar en MongoDB.

Ahora vemos db.collection.deleteMany () El método con parámetros de filtro al frente. Pero también puede tener otros dos parámetros. La sintaxis completa del método db.collection.deleteMany () es la siguiente.

db.collection.deleteMany( 
   , 
   { 
      writeConcern: , 
      collation:  
   } 
) 

Aqui podemos dar Escribir preocupación Y acabando también.Esta Escribir preocupación Es algo que nos importa, porque está relacionado con las operaciones de escritura y la atomicidad.

Escribir preocupación Es un parámetro opcional, expresa en forma de documento la preocupación de escritura que se utilizará si es mayor que másLas inquietudes escritas pueden incluir los siguientes campos:

{w: , j: ,se acabó el tiempo: }

  • La opción w es para solicitar la confirmación de que la operación de escritura se ha pasado al número especificado de instancias de mongod.
  • La opción j es solicitar confirmación y la operación de escritura se ha escrito en el registro del disco.
  • La opción wtimeout especifica un límite de tiempo para evitar que las operaciones de escritura se bloqueen indefinidamente.

usar vatio Opciones, la siguiente Disponible:

  • Femenino: 1 – Solicitar confirmación de que el problema de escritura se ha pasado a una única instancia de mongod. También es la opción predeterminada.
  • Femenino: 0 – La solicitud no confirma la operación de escritura.
  • w: «mayoría» – Solicita confirmación de que la operación de escritura se ha pasado a la mayoría de los servidores primarios y secundarios.

Ahora estudiaremos j Valor de la opción.

  • j: de verdad – Pide confirmar las diferentes instancias de mongod mencionadas en w: , Se ha escrito en el registro del disco.

Esta se acabó el tiempo La opción especifica el límite de tiempo (en milisegundos) para escribir la pregunta. Hace que la operación de escritura regrese después del límite especificado y devuelva un error.

Usar eliminar base de datos de administración

Para mantener la base de datos limpia y fácil de administrar, eliminar y eliminar archivos es una tarea indispensable. En este artículo, exploramos diferentes formas de eliminar documentos en una base de datos MongoDB. Todos estos métodos son adecuados para diferentes propósitos y diferentes escenarios. Primero aprendimos acerca de cuatro formas diferentes de eliminar documentos de las colecciones de MongoDB a través de la interfaz de línea de comandos del shell de Mongo. Luego, aprendimos cómo eliminar documentos a través de la impresionante interfaz gráfica de usuario gratuita de MongoDB Compass.

Finalmente, aprendimos sobre la eliminación de documentos, especialmente el problema atómico al eliminar varios documentos.También aprendimos sobre las siguientes opciones Escribir preocupación dentro db.collection.deleteMany () método.

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba