Docs Menu
Docs Home
/

Operaciones de agregación

Las operaciones de agregación procesan múltiples documentos y devuelven resultados calculados. Puede utilizar operaciones de agregación para:

  • Agrupa valores de varios documentos.

  • Realiza operaciones sobre los datos agrupados para devolver un único resultado.

  • Analiza los cambios en los datos con el tiempo.

  • Consulta la versión más reciente de tus datos.

Al utilizar los operadores de agregación incorporados en MongoDB, se pueden realizar análisis en el clúster sin tener que mover los datos a otra plataforma.

Para realizar operaciones de agregación, puedes utilizar:

  • Pipelines de agregación, que son el método preferido para realizar agregaciones.

  • Métodos de agregación de propósito único, que son sencillos pero carecen de las capacidades de una pipeline de agregación.

Puedes ejecutar pipelines de agregación en la interfaz de usuario para implementaciones alojadas en MongoDB Atlas.

Una canalización de agregación consta de uno o más Etapas que procesan documentos. Estos documentos pueden provenir de una colección, una vista o una etapa especialmente diseñada.

Cada etapa realiza una operación en los documentos de entrada. Por ejemplo, una etapa puede $filterdocumentos, documentos y calculan valores. Los documentos generados por una etapa se pasan a la siguiente etapa del$group pipeline.

Una pipeline de agregación puede devolver resultados para grupos de documentos. También puedes actualizar documentos con una pipeline de agregación con las etapas que se muestran en Actualizaciones con pipeline de agregación.

Nota

Las pipelines de agregación que se ejecutan con el método db.collection.aggregate() no modifican los documentos en una colección, a menos que la pipeline contenga una etapa $merge o $out.

El siguiente ejemplo de pipeline utiliza documentos de los datos de muestra disponibles en MongoDB Atlas, específicamente la colección sample_training.routes. En este pipeline, encontraremos las tres aerolíneas que ofrecen la mayor cantidad de vuelos directos desde el aeropuerto de Portland, Oregón, EE. UU. (PDX).

Primero, agrega una etapa $match para filtrar los documentos a vuelos que tengan un valor de src_airport de PDX y cero stops:

{
$match : {
"src_airport" : "PDX",
"stops" : 0
}
}

La etapa $match reduce el número de documentos en nuestro pipeline de 66,985 a 113. A continuación, $group los documentos por nombre de la aerolínea y cuenta el número de vuelos:

{
$group : {
_id : {
"airline name": "$airline.name",
}
count : {
$sum : 1
}
}
}

La etapa $group reduce el número de documentos en el pipeline a 16 aerolíneas. Para encontrar las aerolíneas con más vuelos, utiliza la etapa $sort para ordenar los documentos restantes en orden descendente:

{
$sort : {
count : -1
}
}

Después de clasificar tus documentos, utiliza la etapa $limit para devolver las tres aerolíneas principales que ofrecen la mayor cantidad de vuelos directos desde PDX:

{
$limit : 3
}

Después de poner los documentos en la colección sample_training.routes a través de esta canalización de agregación, las tres principales aerolíneas que ofrecen vuelos sin escalas desde PDX son Alaska, American y United Airlines con 39, 17 y 13 vuelos, respectivamente.

El pipeline completo se asemeja a lo siguiente:

db.routes.aggregate( [
{
$match : {
"src_airport" : "PDX",
"stops" : 0
}
},
{
$group : {
_id : {
"airline name": "$airline.name",
}
count : {
$sum: 1
}
}
},
{
$sort : {
count : -1
}
},
{
$limit : 3
}
] )

Para ver ejemplos ejecutables que tengan documentos de entrada de muestra, consulta Ejemplos de pipelines de agregaciones completas.

Para obtener más información sobre pipelines de agregación, consulta Pipeline de agregación.

Los métodos de agregación de propósito único agregan documentos de una sola colección. Los métodos son simples, pero carecen de las capacidades de una pipeline de agregación.

Método
Descripción

Devuelve un conteo aproximado de los documentos en una colección o una vista.

Devuelve un conteo del número de documentos en una colección o una vista.

Devuelve un arreglo de documentos que tienen valores distintos para el campo especificado.

Volver

Datos monetarios

Obtén una insignia de habilidad

Domina los “Fundamentos de la transformación de datos” de forma gratuita.

Más información

En esta página