Escriu per cercar…

Agregaciones

Una pipeline de agregación procesa los documentos por etapas, y cada etapa transforma lo que le llega de la anterior.

S'ensenya a
Bases de dadesDocumentDAMDAWDAW-BIOBig data aplicatDades no estructurades i intel·ligència de negociIABD

Introducción

MongoDB ofrece operaciones de agregación mediante pipelines: una serie de operaciones que procesan documentos de manera secuencial.

Una pipeline de agregación se construye como una sucesión declarativa de etapas. Cada etapa inspecciona y transforma los documentos a medida que pasan por ella, y alimenta el resultado a la etapa siguiente.

Los documentos de una colección entran en la pipeline y pasan por cada etapa. La salida de una etapa es la entrada de la siguiente, y el resultado final sale por el final.

Las etapas pueden hacer operaciones como estas:

  • Filtrar. Se parece a una consulta: la lista de documentos se reduce con un conjunto de criterios.
  • Ordenar. Reordena los documentos según un campo.
  • Transformar. Cambia la estructura de los documentos: puedes eliminar campos, renombrarlos o moverlos a documentos anidados.
  • Agrupar. Procesa varios documentos juntos para formar un resultado resumido.

Una etapa no tiene que producir el mismo número de documentos que recibe. De hecho, la gracia suele ser precisamente esa.

Entorno de trabajo

Continúa en el mismo contenedor que en Document:

shell
docker exec -it mongo mongosh

Trabajarás con una colección de ciudades:

Inserta los datos en la colección cities de la base de datos test:

js
db.cities.drop()
db.cities.insertMany([
    {"name": "Seoul", "country": "South Korea", "continent": "Asia", "population": 25.674 },
    {"name": "Mumbai", "country": "India", "continent": "Asia", "population": 19.980 },
    {"name": "Lagos", "country": "Nigeria", "continent": "Africa", "population": 13.463 },
    {"name": "Beijing", "country": "China", "continent": "Asia", "population": 19.618 },
    {"name": "Shanghai", "country": "China", "continent": "Asia", "population": 25.582 },
    {"name": "Osaka", "country": "Japan", "continent": "Asia", "population": 19.281 },
    {"name": "Cairo", "country": "Egypt", "continent": "Africa", "population": 20.076 },
    {"name": "Tokyo", "country": "Japan", "continent": "Asia", "population": 37.400 },
    {"name": "Karachi", "country": "Pakistan", "continent": "Asia", "population": 15.400 },
    {"name": "Dhaka", "country": "Bangladesh", "continent": "Asia", "population": 19.578 },
    {"name": "Rio de Janeiro", "country": "Brazil", "continent": "South America", "population": 13.293 },
    {"name": "Sao Paulo", "country": "Brazil", "continent": "South America", "population": 21.650 },
    {"name": "Mexico City", "country": "Mexico", "continent": "North America", "population": 21.581 },
    {"name": "Delhi", "country": "India", "continent": "Asia", "population": 28.514 },
    {"name": "Buenos Aires", "country": "Argentina", "continent": "South America", "population": 14.967 },
    {"name": "Kolkata", "country": "India", "continent": "Asia", "population": 14.681 },
    {"name": "New York", "country": "United States", "continent": "North America", "population": 18.819 },
    {"name": "Manila", "country": "Philippines", "continent": "Asia", "population": 13.482 },
    {"name": "Chongqing", "country": "China", "continent": "Asia", "population": 14.838 },
    {"name": "Istanbul", "country": "Turkey", "continent": "Europe", "population": 14.751 }
])

Estàs llegint una vista prèvia.

Inicia la sessió amb Google per llegir la pàgina sencera.

Inicia la sessió amb Google

Només et demanarem que acceptis les condicions del servei.