Mongodb: agregação

6
Agregação em MongoDB aggregation framework etc. Luciano Ramalho [email protected] @ramalhoorg maio/2013

description

Palestra apresentada no encontro do MUG-SP (MongoDB Users Group) no escritório do Google em São Paulo

Transcript of Mongodb: agregação

Page 1: Mongodb: agregação

Agregaçãoem MongoDB

aggregation framework etc.

Luciano [email protected]

@ramalhoorgmaio/2013

Page 2: Mongodb: agregação

@ramalhoorg

Alternativas de agregação

• Funções de agregação simples:

• count, distinct, group

• Map-reduce

• map: função JS para extrair (chave, valor) de cada doc

• reduce: função JS para agregar os valores para cada chave

Page 3: Mongodb: agregação

@ramalhoorg

Aggregation framework

• A partir do MongoDB 2.2

• Arquitetura de pipeline

Page 4: Mongodb: agregação

@ramalhoorg

Pipeline

• O pipeline é dividido em estágios

• Um estágio realiza uma operação com cada documento que recebe, e pode gerar 0, 1 ou mais documentos para o próximo estágio

• O pipeline pode ser (parcialmente) processado em paralelo em shards

Page 5: Mongodb: agregação

@ramalhoorg

Operações do pipeline

• Projeção: $project

• Seleção: $match, $limit, $skip

• Explosão: $unwind

• Agrupamento: $group

• Ordenação: $sort

• Ordenação e seleção geoespacial: $geoNear (≥2.4)

Page 6: Mongodb: agregação

@ramalhoorg

Exemplos

• http://turing.com.br/material/mongodb/

• https://github.com/oturing/aggregation-by-example

• https://github.com/ramalho/mongosp