Operaciones CRUD en MongoDB: Tutorial con Ejemplos

Publicado: 2020-02-05

Con la continua evolución de la web, ahora estamos viendo cómo MongoDB y otras bases de datos de objetos de documentos surgen como alternativas a las bases de datos convencionales basadas en SQL. Hay varias ventajas que estas bases de datos de objetos de documentos tienen sobre las bases de datos SQL, y las más destacadas de todos estos beneficios incluyen la escalabilidad y la agilidad.

Es importante tener en cuenta que los datos en MongoDB se almacenan en formato de documentos JSON (BSON) codificados en binario. Este formato puede tener el requisito de contener matrices de documentos incrustados o, para el caso, valores. Un documento forma un registro en MongoDB, que es una estructura creada a partir de valores y pares de campos.

Analicemos ahora las operaciones de creación, actualización, recuperación y eliminación u operaciones CRUD en MongoDB. Estas funciones se pueden clasificar ampliamente como funciones de modificación de datos en MongoDB. Estos solo se pueden usar para una sola colección. Insertar es una función en MongoDB que se puede usar para agregar datos a la base de datos.

Tabla de contenido

Lista de operaciones CRUD en MongoDB

1. Creación de documentos

¿Cómo se crean los objetos usando MongoDB? MongoDB usa BSON, una representación binaria de JSON, para su almacenamiento. Entonces, es bastante fácil entender que los métodos utilizados para realizar diferentes operaciones en la base de datos tienen algo que ver con JavaScript. Vamos a crear una colección de usuarios y usuarios. También es importante tener en cuenta que las tablas en SQL son equivalentes a las colecciones en MongoDB.
db.users.save({nombre:”Mike”, trabajo:”doctor”,correo electrónico:”[email protected]”})
Este ejemplo usa MongoDB save() para guardar los datos en la colección.

2. Inserción de documentos

  • Inserción por lotes : esta función permite agregar una lista de documentos al mismo tiempo a una base de datos. Un lote, en un momento determinado, puede tener cientos o incluso miles de documentos. Con la capacidad de insertar múltiples documentos, esta función funciona mucho más rápido que otras funciones de inserción. Una inserción por lotes no necesita que presente solicitudes individuales para los cientos o miles de documentos. En su lugar, funciona como una solicitud de Protocolo de control de transmisión (TCP). El tiempo necesario durante las inserciones siempre es significativamente menor, ya que no hay actividad de procesamiento de encabezado involucrada. Cada documento que debe insertarse lleva un encabezado que transmite a la base de datos la operación que debe realizarse. En su mayoría, las inserciones por lotes se utilizan para almacenar datos de sensores y registros del servidor.
  • Mongoimport : Mongoimport es una herramienta de línea de comandos que se utiliza en lugar de la inserción por lotes de datos esenciales de MySQL, Oracle o cualquier otro sistema de gestión de bases de datos relacionales (RDBMS). En ocasiones, es posible que deba realizar cambios en los documentos (agregar una ID personalizada) antes de almacenarlos en MongoDB. Otra cosa importante que debe saber es que MongoDB solo acepta mensajes de hasta 16 MB. Por lo tanto, la inserción por lotes pone una restricción en la cantidad de mensajes que puede tener.
  • Inserción masiva no ordenada : en esta función, MongoDB escribe operaciones sin seguir ningún orden. En caso de producirse algún error, continuará con las operaciones de escritura que quedan sin interrupción alguna. MongoDB forma un grupo de operaciones desordenadas mientras las realiza. MongoDB también puede buscar mejoras en el rendimiento al reordenar las operaciones enumeradas antes de la ejecución. Por lo tanto, las aplicaciones no tienen que depender de una secuencia al considerar esta función para la inserción masiva. Bulk.getOperations() se puede usar para ver cómo MongoDB agrupa un conjunto de operaciones y luego las ejecuta. Este comando se puede usar para agregar tres documentos al mismo tiempo pero sin ningún orden.
  • Inserción masiva ordenada: en esta función, MongoDB sigue una secuencia al escribir operaciones. Un error durante cualquier operación de escritura hace que MongoDB no realice otras operaciones de escritura. Las operaciones ordenadas se agrupan considerando su continuidad y tipo. Las operaciones ordenadas contiguas que pertenecen a la misma clase se agrupan.

Por ejemplo, si una lista ordenada tiene una operación de inserción seguida de una operación de eliminación seguida de dos operaciones de actualización, MongoDB creará tres grupos para apilarlos. El grupo uno constará de una operación de inserción. El segundo grupo tendrá una operación de eliminación. El tercer grupo juntará las dos operaciones de actualización.

Se espera que las futuras ediciones de MongoDB traten adecuadamente este comportamiento. Cada grupo de listas masivas ordenadas no puede tener más de 1000 operaciones. En caso de que el número supere ese límite máximo, MongoDB crea grupos más pequeños de 1000 operaciones o menos, para cumplir con este límite. Entonces, si hay 7000 operaciones masivas ordenadas, habrá siete grupos, cada uno de los cuales constará de 1000 operaciones masivas. Para ver cómo se realizan la agrupación y la ejecución, primero ejecute el comando de inserción masiva y luego use el comando Bulk.getOperations. Este comando se puede utilizar para agregar tres documentos en orden.

3. Recuperación/lectura de documentos

Cada consulta en MongoDB se dirige a documentos particulares. MongoDB identifica documentos en función de la condición definida en una consulta y luego devuelve esos documentos a su destino previsto. Una consulta de recuperación de documentos puede tener una proyección que mencione condiciones o criterios que coincidan con los campos del documento que debe devolverse.

Las consultas se pueden modificar para poner saltos, límites y órdenes de clasificación.

Analicemos ahora cómo se especifica la condición de igualdad. Utilice el comando findOne() para identificar el primer registro de un documento. Para mostrar los resultados en el formato adecuado, puede utilizar el método bonito.

Utilice la consulta db.items.find().pretty() para identificar todos los documentos enumerados en una colección y visualizarlos en un formato estandarizado. Puede usar una consulta vacía para elegir todos los documentos: db.items.find( {} ). Esta consulta tiene una cláusula de consulta vacía al final, por lo que identificará todos los documentos enumerados en una colección.

No especificar el método de búsqueda con un documento de consulta y usar una consulta vacía generará el mismo resultado. Por lo tanto, las consultas db.items.find( {} ) y db.items.find() son equivalentes en términos del resultado para el que se utilizan.

Puede manipular la consulta y usar el método de cursor de consulta, mientras que el método de conteo le permite averiguar la cantidad de documentos en una colección que coinciden con su consulta. db.elementos.contar()

4. Actualización de documentos

Debe utilizar el método update() para actualizar documentos en MongoDB. El método de actualización presenta dos elementos importantes: consulta y actualización. El parámetro de consulta viene primero seguido del parámetro de actualización. Aquí hay un ejemplo

db.users.update({nombre:”Mike”}, {edad: 32})

Sin embargo, esta no es la forma correcta de actualizar un par de valores, que en este caso es la edad. Con esto, sobrescribirá todo en el documento. Lo único que permanecerá en la edad. Entonces, cuando tenemos que actualizar un solo par de valores en todo el documento, necesitamos usar algunas palabras clave.

db.users.update({nombre: "Mike"}, { $conjunto: { edad: 28}})

Esto no sobrescribirá nada. Conservarías toda la información que tiene el documento. Solo se actualizará el valor de la edad.

5. Eliminación de documentos

Utilice el método de eliminación – db.courses.remove() – para eliminar documentos de una colección. Este comando eliminará todos los documentos de la colección dada. Lo que no eliminará son los índices y la colección en sí. A veces, el comando de eliminación puede tomar una consulta como parámetro. Si desea eliminar documentos que coincidan con los criterios mencionados en la consulta, utilice el comando db.items.remove({"elemento": "Pluma").

Utilice el comando db.items.remove({” item” : “Bag},1) para eliminar solo un documento de una colección. Para eliminar todos los documentos, la colección y los índices, utilice el comando db.courses.drop() (método de eliminación).

Conclusión

Si está interesado en saber más sobre Big Data, consulte nuestro programa PG Diploma in Software Development Specialization in Big Data, que está diseñado para profesionales que trabajan y proporciona más de 7 estudios de casos y proyectos, cubre 14 lenguajes y herramientas de programación, prácticas talleres, más de 400 horas de aprendizaje riguroso y asistencia para la colocación laboral con las mejores empresas.

Aprenda cursos de desarrollo de software en línea de las mejores universidades del mundo. Obtenga Programas PG Ejecutivos, Programas de Certificado Avanzado o Programas de Maestría para acelerar su carrera.

Liderar la revolución tecnológica basada en datos

Más de 400 horas de aprendizaje. 14 idiomas y herramientas. Estado de ex alumnos del IIIT-B.
Programa de Certificado Avanzado en Big Data de IIIT Bangalore