Agregación grupal MongoDB

Agregación grupal MongoDB
La agregación es el procedimiento de extraer datos de una colección MongoDB. Procesa numerosos documentos y proporciona resultados estimados. La agregación en MongoDB tiene varios operadores y métodos que llevan a cabo varias tareas. Entre esos operadores, el operador de grupo $ agrupa los documentos para cada agrupación única y los organiza de acuerdo con una expresión que se define. El operador del grupo es significativo en MongoDB ya que facilita una amplia gama de manipulaciones de datos. La agregación $ grupo en el ejemplo de MongoDB junto con diferentes acumuladores se proporciona a continuación.

¿Cómo funciona la agregación grupal en MongoDB??

El operador $ de grupo debe usarse para agrupar los documentos de entrada de acuerdo con la expresión _id especificada. Luego debe devolver un solo documento con los valores totales para cada grupo separado. Para comenzar con la implementación, hemos creado la colección "Libros" en MongoDB. Después de la creación de la colección "Libros", hemos insertado los documentos que están asociados con los diferentes campos. Los documentos se insertan en la colección a través del método InsertMany () ya que la consulta a ejecutar se muestra a continuación.

> DB.Libros.insertmany ([

_id: 1,
Título: "Anna Karenina",
Precio: 290,
Año: 1879,
Order_status: "In-stock",
autor:
"Nombre": "Leo Tolstoy"

,

_id: 2,
Título: "Matar a un ruiseñor",
Precio: 500,
Año: 1960,
Order_status: "Out Stock",
autor:
"Nombre": "Harper Lee"

,

_id: 3,
Título: "Hombre invisible",
Precio: 312,
Año: 1953,
Order_status: "In-stock",
autor:
"Nombre": "Ralph Ellison"

,

_id: 4,
Título: "Amado",
Precio: 370,
Año: 1873,
orden_status: "out_of_stock",
autor:
"Nombre": "Toni Morrison"

,

_id: 5,
Título: "Las cosas se desmoronan",
Precio: 200,
Año: 1958,
Order_status: "In-stock",
autor:
"Nombre": "Chinua Achebe"

,

_id: 6,
Título: "El color púrpura",
Precio: 510,
Año: 1982,
Order_status: "Out Stock",
autor:
"Nombre": "Alice Walker"


])

Los documentos se almacenan con éxito en la colección "libros" sin encontrar ningún error porque la salida se reconoce como "verdadera". Ahora, vamos a usar estos documentos de la colección "Libros" para realizar la agregación "$ Group".

Ejemplo # 1: Uso de la agregación de $ grupo

El uso simple de la agregación $ grupo se demuestra aquí. La consulta agregada ingresa primero el operador "$ grupo", luego el operador "$ grupo" toma las expresiones para generar los documentos agrupados.

> DB.Libros.agregar([
$ Group: _id: '$ Autor.nombre'
])

La consulta anterior del operador de grupo $ se especifica con el campo "_id" para calcular los valores totales para todos los documentos de entrada. Entonces, el campo "_id" se asigna con el "$ autor.nombre "que forma un grupo diferente en el campo" _id ". Los valores separados de $ autor.El nombre se devolverá porque no calculamos ningún valor acumulado. La ejecución de la consulta agregada de $ grupo tiene el siguiente resultado. El campo _id tiene valores del autor.nombres.

Ejemplo # 2: Uso de la agregación de $ grupo con el acumulador $ push

El ejemplo de $ grupo agregación usa cualquier acumulador que ya se menciona anteriormente. Pero podemos usar los acumuladores en la agregación de $ grupo. Los operadores de acumuladores son aquellos que se utilizan en campos de documentos de entrada distintos de los que se "agrupan" en "_ID". Supongamos que queremos empujar los campos de la expresión a una matriz, luego se llama al operador "$ Push" en el operador "$ Group". El ejemplo lo ayudará a comprender el acumulador "$ Push" del "$ Group" más claramente claramente.

> DB.Libros.agregar(
[
$ Group: _id: "$ _id", año: $ push: "$ año"
]
).bonito();

Aquí, queremos agrupar la fecha de año publicado de los libros dados en la matriz. La consulta anterior debe aplicarse para lograr esto. La consulta de agregación se proporciona con la expresión donde el operador "$ grupo" toma la expresión de campo "_id" y la expresión de campo "año" para obtener el año de grupo usando el acumulador $ push. La salida recuperada de esta consulta específica crea la variedad de campos de año y almacena el documento agrupado devuelto dentro de él.

Ejemplo # 3: Uso de la agregación de $ grupo con el acumulador "$ min"

A continuación, tenemos el acumulador "$ min" que se utiliza en la agregación de $ grupo para obtener el valor mínimo de coincidencia de cada documento de la colección. La expresión de consulta para el acumulador de $ min se da a continuación.

> DB.Libros.agregar([

$ grupo:
_identificación:
Título: '$ Título',
Order_status: '$ Order_status'
,
MinPrice: $ min: '$ Price'


])

La consulta tiene la expresión de agregación "$ Group" donde hemos agrupado el documento para los campos "Título" y "Order_status". Luego, proporcionamos el acumulador de $ min que agrupó los documentos al obtener los valores de precio mínimo de los campos no agrupados. Cuando ejecutamos esta consulta de $ min acumulador a continuación, devuelve los documentos agrupados por título y orden_status en una secuencia. El precio mínimo aparece primero, y el precio más alto del documento se coloca el último.

Ejemplo # 4: Use la agregación de grupos $ con el acumulador $ suma

Para obtener la suma de todos los campos numéricos utilizando el operador de grupo $, se implementa la operación de acumulador $ suma. Los valores no numéricos en las colecciones son considerados por este acumulador. Además, estamos utilizando la agregación $ Match aquí con la agregación $ grupo. La agregación de $ Match acepta las condiciones de consulta que se dan en un documento y transfieren el documento coincidente con la agregación de grupos $ que luego devuelve la suma del documento para cada grupo. Para el acumulador $ suma, la consulta se presenta a continuación.

> DB.Libros.agregar([
$ Match: orden_status: 'in-stock',
$ Group: _id: '$ Autor.nombre ', TotalBooks: $ sum: 1
])

La consulta anterior de la agregación comienza con el operador $ de coincidencia que coincide con todo el "orden_status" cuyo estado está "en stock" y se pasa al grupo $ como entrada. Luego, el operador $ grupo tiene la expresión del acumulador $ suma que genera la suma de todos los libros en las acciones. Tenga en cuenta que el "$ suma: 1" agrega 1 a cada documento que pertenece al mismo grupo. La salida aquí mostró solo dos documentos agrupados que tienen el "Order_status" asociado con "In-Stock".

Ejemplo # 5: Use la agregación de grupos $ con la agregación de clases $

El operador $ grupo aquí se usa con el operador "$ sort" que se utiliza para ordenar los documentos agrupados. La siguiente consulta tiene tres pasos para la operación de clasificación. Primero está la etapa de $ Match, luego la etapa $ grupo, y la última es la etapa de clasificación $ que clasifica el documento agrupado.

> DB.Libros.agregar([
$ Match: Order_status: 'Out-Out-Stock',
$ Group: _id: Aftorname: '$ Autor.Nombre ', TotalBooks: $ sum: 1,
$ sort: Aftorname: 1
])

Aquí, hemos obtenido el documento coincidente cuyo "Order_status" está fuera de existencia. Luego, el documento emparejado se ingresa en la etapa de Grupo $ que agrupó el documento con el campo "AHORNORNOME" y los "TotalBooks". La expresión de $ grupo se asocia con el acumulador $ suma al número total de libros 'fuera de existencia'. Los documentos agrupados se clasifican con la expresión de $ clasificación en orden ascendente, ya que "1" aquí indica el orden ascendente. El documento de grupo ordenado en el orden especificado se obtiene en la siguiente salida.

Ejemplo # 6: Use la agregación de grupos $ para un valor distinto

El procedimiento de agregación también agrupa los documentos por elemento utilizando el operador $ de grupo para extraer los valores distintos del elemento. Tengamos la expresión de la consulta de esta declaración en MongoDB.

> DB.Libros.Aggregate ([$ Group: _id: "$ Title"]).bonito();

La consulta de agregación se aplica a la colección de libros para obtener el valor distintivo del documento grupal. El grupo $ aquí toma la expresión _id que genera los valores distintos, ya que hemos ingresado el campo "Título". La salida del documento del grupo se obtiene al ejecutar esta consulta que tiene el grupo de nombres de título en el campo _id.

Conclusión

La guía tuvo como objetivo borrar el concepto del operador de agregación de grupos $ para agrupar el documento en la base de datos MongoDB. El enfoque agregado de MongoDB mejora los fenómenos de agrupación. La estructura de sintaxis del operador de grupo $ se demuestra con los programas de ejemplo. Además del ejemplo básico de los operadores $ de grupo, también hemos empleado a este operador con algunos acumuladores como $ push, $ min, $ su suma y operadores como $ coincidencia y $ sort.