Skip to content

Instantly share code, notes, and snippets.

@TiagoWinehouse
Last active January 23, 2017 12:42
Show Gist options
  • Save TiagoWinehouse/5899eff5760c223d1dfd8deb62526cb5 to your computer and use it in GitHub Desktop.
Save TiagoWinehouse/5899eff5760c223d1dfd8deb62526cb5 to your computer and use it in GitHub Desktop.
Labs MongoDB
//Criando a collection
db.createCollection('ciclo_pagamento_pelada');
//Inseriando dados a collection
db.ciclo_pagamento_pelada.insert({nome: 'Janeiro/17', mes: 1, ano: 2017});
db.ciclo_pagamento_pelada.insert({nome: 'Fevereiro/17', mes: 2, ano: 2017,
creditos: [
{nome: 'Mensalidade Time Branco', valor: 200, status: 'PAGO'}
],
debitos: [
{nome: 'Arbitragem', valor: 100, status: 'PENDENTE'},
{nome: 'Bolas', valor: 400, status: 'PAGO'},
]});
db.ciclo_pagamento_pelada.insert({nome: 'Março/17', mes: 3, ano: 2017,
creditos: [
{nome: 'Mensalidade Time Preto', valor: 200, status: 'PAGO'}
],
debitos: [
{nome: 'Arbitragem', valor: 100, status: 'PAG)'},
{nome: 'Campo', valor: 300, status: 'PAGO'},
]});
//Consultar todos os dados cadastrado na collection 'ciclo_pagamento_pelada'
db.ciclo_pagamento_pelada.find();
//Consultando todos os dados organizado
db.ciclo_pagamento_pelada.find().pretty();
//Consultando uma dado cadastrado
db.ciclo_pagamento_pelada.findOne();
//Consultando a collection com o filtro
db.ciclo_pagamento_pelada.findOne({mes: 2});
//Consultando com o operador OU{$or}
db.ciclo_pagamento_pelada.find({$or: [{mes: 1}, {mes: 2}]}).pretty();
//Consultando a collection que tenha credito {$exists}
db.ciclo_pagamento_pelada.find({creditos:{ $exists:true }}).pretty();
//Consultando a collection com o ano de 2017
db.ciclo_pagamento_pelada.find({ano:2017});
//Usando para paginação {Pegando os dados sem o primeiro elemento da collection}
db.ciclo_pagamento_pelada.find({ano:2017}).skip(1);
//Usando para paginação {Pegando os dados 10 primeiros dados}
db.ciclo_pagamento_pelada.find({ano:2017}).skip().limit(10);
//Usando para paginação {Pegando os dados 10 primeiros dados para a segunda pagina}
//sem a necessidade de trazer todos os dados
db.ciclo_pagamento_pelada.find({ano:2017}).skip(10).limit(10);
//Extraindo o sumario do extrato de pagamento e debito com o Aggregation
//$project: <RETORNA UM DOCUMENTO ADICIONANDO OU REMOVENDO CAMPOS PARA A STREAM DO PIPELINE> }
//$group: É o agrupamento de documentos por alguma expressão especificada e saída para a próxima
//fase de um documento para cada grupo distinto.
db.ciclo_pagamento_pelada.aggregate([{
$project:{credito:{$sum:"$creditos.valor"},debito:{$sum:"$debitos.valor"}},
}, {
$group:{_id:null,credito:{$sum:"$credito"},debito:{$sum:"$debito"}}
}]);
//Atualizando os dados.. $set indicará quais os campos a ser atualizado
db.ciclo_pagamento_pelada.update(
{$and:[{mes: 1}, {ano:2017}]},
{$set:{creditos:[{nome: 'Mensalidade do time AZUL', valor: 250 }]}}
);
//Consulta com o filtro '$exists'
db.ciclo_pagamento_pelada.find({creditos:{$exists:true}}, {_id:0, name:1});
//Verificar quantos registro estão gravados
db.ciclo_pagamento_pelada.count();
//Removendo dados de uma coleção
db.ciclo_pagamento_pelada.remove({mes:2});
db.ciclo_pagamento_pelada.remove({ano:2017}, 1);
//Apagar o banco
db.dropDatabase();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment