Last active
January 23, 2017 12:42
-
-
Save TiagoWinehouse/5899eff5760c223d1dfd8deb62526cb5 to your computer and use it in GitHub Desktop.
Labs MongoDB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//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