Agregación en MongoDB: canalización y sintaxis

Publicado: 2020-09-23

Tabla de contenido

Introducción

MongoDB es una forma de medio de almacenamiento de datos de alto volumen. Actúa como una base de datos no relacional con consultas de documentos. La unidad básica en MongoDB son los pares clave-valor de los documentos en la colección MongoDB. Se convirtió en un medio muy beneficioso desde principios de la década de 2000.

La agregación en MongoDB es un marco que nos permite realizar varias tareas computacionales en documentos en una o más colecciones de MongoDB. Es una forma efectiva de generar informes o un puñado de métricas de datos para la interpretación de diferentes documentos. El marco se denomina MongoDB, ya que agrega varios documentos para formar resultados unidos y combinados.

La agregación en MongoDB contiene principalmente el marco de canalización. El concepto subyacente básico de la canalización es que la entrada se toma de una colección de MongoDB y los documentos pasan por una serie de etapas para producir finalmente una salida unificada. Esta idea es muy similar al concepto de tubería de Linux, es decir, Bash.

Características clave de MongoDB

Hay muchas razones por las cuales este sistema de base de datos es ampliamente utilizado. Algunas características especiales se mencionan a continuación:

  • MongoDB, al ser una base de datos NoSQL, es muy flexible de usar. Está orientado a documentos.
  • Los pares clave-valor pueden indexar los campos dentro del documento. Esta es una característica muy especial de MongoDB.
  • MongoDB divide un gran conjunto de datos en pequeñas instancias mediante el uso de un concepto de fragmentación. De esta forma, puede ejecutarse en muchos servidores, manteniendo las instancias en equilibrio.
  • Las consultas en MongoDB pueden devolver campos específicos en un documento.

Leer: Ideas y temas del proyecto MongoDB

¿Por qué es útil la agregación en MongoDB?

Puede haber ocasiones en las que sea necesario procesar un millón de archivos incrustados. Sin embargo, esto puede provocar un desbordamiento en la pila del servidor y hacer que el proceso finalice. La restricción de procesar una gran cantidad de archivos incrustados permitía mejorar el proceso de escaneo al asociar los archivos.

Por lo tanto, la operación de agregación fue diseñada para computar los documentos en diferentes etapas y mostrar el efecto acumulativo como resultado y devolverlo. La técnica de emparejamiento de generación de resultados revolucionó los problemas de una gran cantidad de archivos. Por lo tanto, el marco de agregación es esencial.

Este marco puede realizar muchas operaciones de consulta en diferentes archivos simultáneamente. Se parece mucho a las consultas de bases de datos relacionales.

Consulte: Comandos MongoDB más comunes

¿Qué es el canal de agregación?

Una tubería es un marco de etapas continuas diseñado para realizar tareas separadas que juntas resuelven un objetivo unificado. Aquí, en MongoDB Aggregation , este marco sirve para el proceso de cálculo y manipula los documentos. Muchos documentos de la colección MongoDB se proporcionan como entrada y son específicos de la metodología; una tarea particular se realiza en cada etapa.

Posteriormente, todos los resultados se unen colectivamente y se calculan las métricas acumulativas, que se muestran como salida. El resultado es bastante similar a los resultados de consulta proporcionados por bases de datos relacionales, es decir, un flujo de documentos para trabajar adicionalmente. Más tarde, se puede utilizar en la generación de informes de creación de sitios web.

Entonces, cada etapa actúa aquí como una unidad de procesamiento. Para cada etapa interna, la salida de la etapa anterior actúa como entrada. Además, se pueden agregar filtros adicionales en la etapa inicial. Las etapas a menudo se diseñan con muchos hiperparámetros. Para ello, se proporcionan unos mandos o botones de afinación para controlarlos. Cambiar estos hiperparámetros afecta los resultados de esa etapa. Esto parametriza la tarea que uno está interesado en realizar. De esta manera, una etapa realiza una tarea genérica.

Puede haber situaciones en las que uno desee incluir un tipo de etapa similar varias veces en una tubería en particular. Por ejemplo, puede haber un filtro presente en la parte inicial para no dejar pasar toda la colección. Pero más adelante, después de algún procesamiento, puede ser necesario otro filtro para un criterio diferente.

Sintaxis

Existe un formato específico en el que se construyen las consultas de agregación. La sintaxis y el formato del código se muestran a continuación.

db.Collection_Name.aggregate([

{ $coincidencia: {“_id_field_”: valor}}

{ $grupo: {“_id_field_”: valor}}

{ $ordenar: {“_id_field_”: valor}}

]);

Comandos de canalización

  • Comandos estructurales : los comandos estructurales ayudan a organizar los documentos y los hacen adecuados para las operaciones de manipulación de datos. Hay dos comandos estructurales principales, que se utilizan con mucha frecuencia.
  1. Emparejamiento : Esta es la etapa de filtrado. Esta etapa elimina los documentos que no se cuidan. Este comando se parece mucho a la función WHERE de SQL.

db.clientes.agregado([

{ $coincidencia: {“código postal”: 700068}}

]);

El código anterior devuelve los documentos de todos los clientes que viven en el código postal 700068, de MongoDB Collections.

1. Agrupación : Después de filtrar los documentos, se necesita la agrupación específica. Esto permite formar subconjuntos de toda la colección. Además, los documentos se pueden agrupar en elementos comunes similares. La agrupación ayuda a realizar operaciones similares en ellos juntos.

db.clientes.agregado([

{ $coincidencia: {“código postal”: 700068}}

{

$grupo: {

_id: nulo,

Contar: {

$suma: 1

}

}

]);

$group permite agrupar los documentos para realizar operaciones de transformación. El comando _id trata de preservar campos de datos.

2. Ordenar : Esto ayuda a ordenar los documentos en orden ascendente o descendente según cualquier campo de consulta específico.

db.clientes.agregado([

{ $coincidencia: {“código postal”: 700068}}

{

$grupo: {

_id: nulo,

Contar: {

$suma: 1

}

}

{

$clasificar: {

{“código postal”: -1}

}

}

]);

Esto ordenará los documentos según su código postal.

  • Comandos operativos : hay muchos comandos operativos en MongoDB Aggregation , que ayudan a realizar las tareas de datos. Algunos de los comandos más importantes se describen a continuación:
  1. Suma ($sum) : Devuelve la suma de todos los valores de los documentos.
  2. Máximo ($max) : genera el valor máximo de una variable particular de todos los documentos.
  3. Mínimo ($min) : Devuelve el valor mínimo de una variable.
  4. Promedio ($promedio) : Calcula la media de los valores de cada documento.
  5. Push ($push) : agrega un valor a una matriz.
  6. Primero ($primero) : Devuelve el primer documento de una colección.
  7. Último ($último) : Devuelve el último documento de una colección.
  8. Adding to Set ($addToSet) : agrega un valor a una matriz de un documento sin duplicarlo.

Lea también: Alcance futuro de MongoDB

Terminando

En esta era de Big Data, las bases de datos no relacionales son muy útiles para manejar grandes conjuntos de muestras. Hoy en día, el campo de la ciencia de datos y el desarrollo están bien acostumbrados al uso de MongoDB. Este marco se puede usar con lenguajes populares como Java, JavaScript, Python y muchos otros lenguajes. Tener conocimiento de MongoDB y una buena mano con un marco de agregación puede ser una carrera de ensueño.

Si ya se ha interesado en MongoDB agregación y busque algunos cursos en línea, 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, talleres prácticos prácticos, más Más de 400 horas de aprendizaje riguroso y asistencia para la colocación laboral con las mejores empresas.

En ese caso, este curso ciertamente lo ayudará a obtener todo el conocimiento sobre estructuras de datos y algoritmos, programación Java, fundamentos de bases de datos, HTML, CSS, JavaScript, Angular, Java, análisis y diseño orientado a objetos.

Más de 250 horas de enseñanza en línea, sesiones individuales con expertos de la industria y mucho más está disponible en este curso. Además de esto, el curso estará a cargo de expertos en la materia de upGrad, y se le brindarán oportunidades de colocación de las principales empresas de TI, empresas basadas en productos y nuevas 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

Programa de Certificado Avanzado en Big Data de IIIT Bangalore