Skip to content

Instantly share code, notes, and snippets.

@ElissandroMendes
Last active September 14, 2019 18:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ElissandroMendes/8ab645817d295ed3c8da351c279732b6 to your computer and use it in GitHub Desktop.
Save ElissandroMendes/8ab645817d295ed3c8da351c279732b6 to your computer and use it in GitHub Desktop.
Especialização Ciencia de Dados - Exemplos de código aggregate MongoDB
1. Quantidade de pagamento e totalização dos valores atualizados e pagos por orgão, tipo instrumento e modalidade
db.contrato.aggregate( [
{ $group:
{
_id:{orgao:"$orgao_sigla", instrumento:"$tipo_instrumento_desc", modalidade: "$modalidade_desc"},
_quantidade: {$sum: 1},
_total_atualizado: {$sum: "$valor_atualizado"},
_total_pago: {$sum: "$valor_pago"}
}
},
{ $sort: {orgao: 1}
]).pretty()
2. Valor a pagar pela SEDUC por região e tipo de contrato
db.contrato.aggregate( [
{$match: {orgao_sigla: "SEDUC"}},
{ $group:
{
_id:{regiao:"$regiao", tipo_contrato:"$tipo_contrato_desc"},
_total_apagar: {$sum: {$subtract:["$valor_atualizado", "$valor_pago"]}}
}
}
])
# Coleção despesa:
3. Somatório de empenho e pagamentos por ano
db.despesa.aggregate([
{$group:
{
_id:"$num_ano",
total_empenho: {$sum:"$vlr_empenho"},
total_pago: {$sum:"$vlr_pago"}
}
}
])
4. Somatório de empenho e pagamento por ano e função
db.despesa.aggregate([
{$group:
{
_id: { ano:"$num_ano", funcao: "$dsc_funcao"},
total_empenho: {$sum:"$vlr_empenho"},
total_pago: {$sum:"$vlr_pago"}
}
}
])
5. Somatório de empenho e pagamento pela função “EDUCAÇÃO” no ano de 2018
db.despesa.aggregate([
{$match:{dsc_funcao: "EDUCAÇÃO", num_ano: "2018"}},
{$group:
{
_id: { ano:"$num_ano", funcao: "$dsc_funcao"},
total_empenho: {$sum:"$vlr_empenho"},
total_pago: {$sum:"$vlr_pago"}
}
}
])
6. Qual órgão teve um número maior de pagamento no primeiro mandato de Camilo Santana?
db.despesa.aggregate([
{ $match: { num_ano: { $gt: "2015", $lt: "2018" }, vlr_pago: { $gt: 0 } } },
{ $group:
{
_id: "$dsc_orgao",
qtd_pagamentos: { $sum: 1 },
}
},
{ $sort: { qtd_pagamentos: -1} }
])
Resposta: ** SECRETARIA DA EDUCAÇÃO **
7. Qual o credor recebeu mais dinheiro do Estado no primeiro mandato do Camilo Santana?
db.despesa.aggregate([
{ $match: { num_ano: { $gt: "2015", $lt: "2018" }, vlr_pago: { $gt: 0 } } },
{ $group:
{
_id: "$dsc_nome_credor",
total_pago_credor: { $sum: "$vlr_pago" },
}
},
{ $sort: { total_pago_credor: -1} }
])
Resposta: ** SECRETARIA DA EDUCACAO BASICA **
8. Média de empenho e pagamentos por ano
db.despesa.aggregate([
{$group:
{
_id: { ano:"$num_ano"},
media_empenho: {$avg:"$vlr_empenho"},
media_pago: {$avg:"$vlr_pago"}
}
}
])
9. Média de empenho e pagamento por ano e função
db.despesa.aggregate([
{$group:
{
_id: { ano:"$num_ano", funcao: "$dsc_funcao"},
media_empenho: {$avg:"$vlr_empenho"},
media_pago: {$avg:"$vlr_pago"}
}
}
])
10. Média de empenho e pagamento pela função “TRANSPORTE” no ano de 2018
db.despesa.aggregate([
{ $match: { dsc_funcao: "TRANSPORTE", num_ano: "2018" }},
{ $group:
{
_id: "$dsc_funcao",
media_empenho: {$avg:"$vlr_empenho"},
media_pago: {$avg:"$vlr_pago"}
}
}
])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment