Mongodb: agregação

Post on 18-Dec-2014

1.551 views 54 download

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

Agregaçãoem MongoDB

aggregation framework etc.

Luciano Ramalholuciano@ramalho.org

@ramalhoorgmaio/2013

@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

@ramalhoorg

Aggregation framework

• A partir do MongoDB 2.2

• Arquitetura de pipeline

@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

@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)

@ramalhoorg

Exemplos

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

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

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