MongoDB – Parte 2 – Operações com o repositório. – Marcelo Dias
MongoDB – Parte 2 – Operações com o repositório.
Publicado em 5 de abril de 2017por Marcelo
Olá meu caro leitor, presumindo que você já tenham lido a parte 1 deste tutorial e já possua o MongoDB devidamente instalado em sua máquina, vou mostrar abaixo alguns principios e comandos principais para listar, salvar, alterar e deletar itens de sua coleção.
Primeiramente vamos definir o escopo de nossa coleção, vamos criar uma agenda onde vamos inserir nossos contatos, a estrutura básica que um contato deve ter é o nome, telefone, email e uma lista de endereços.
Um endereço deve possuir rua, número, bairro, cidade e tipo (residencial ou comercial), estrutura bem simples somente para fixar os conceitos e as operações básicas.
Para realizar os comandos e testes abaixo eu utilizei o Visual Studio Code para editar os comandos e também usei o terminal de comandos que já vem integrado a ele para facilitar.
Para acessar esse terminal no VSC basta acessar o menu View->Integrated Terminal, agora vamos colocar a mão na massa!
mongod –version (mostra a versão do MongoDB que está rodando em sua máquina);
mongo (acessa o MongoDB em qualquer diretório);
show databases (lista os databases criados).
A imagem abaixo ilustra a utilização dos comandos acima:
Para criar um database vamos utilizar o seguinte comando:
db.createCollection("Agenda")
Quando efetuar a criação de um database o MongoDB deve retornar uma mensagem de OK como na imagem abaixo:
No caso de precisar deletar uma base de dados execute os seguintes comandos:
Vamos agora inserir o primeiro contato em nossa agenda, para isso digite o comando:
Esse comando habilita seu database para edição.
Vamos agora digitar o comando de insert:
db.Agenda.insert({"nome": "Marcelo", "telefone":"(011) 982039191","email":"marcelo@teste.com"})
Se tudo correu bem o MongoDB deverá retornar uma mensagem :
Vamos agora já verificar a operação de consulta, digite no terminal o seguinte comando:
db.Agenda.find();
O resultado deverá trazer todos os contatos cadastrados, porém listados de uma forma não amigável de leitura. Para tornar o resultado melhor digite o comando:
db.Agenda.find().pretty();
O pretty vai listar os registros e formatar o json facilitando a leitura e entendimento da estrutura.
A imagem abaixo demonstra as operações:
Vamos agora inserir outro registro, agora com endereços, note que o registro acima não possui endereços, é possivel incluir documentos com mais ou menos propriedades.
Uma observação, digitar os comandos no terminal pode ser ruim e desconfortável, você pode digitar os mesmos em seu editor preferido e colar no terminal para aplicar. No insert abaixo eu digitei os comandos em um arquivo .js que facilita a escrita e leitura e colei para aplicar no terminal:
Para deletar todos os registros de sua coleção basta digitar o seguinte código:
db.Agenda.remove({});
Depois de deletar todos os registros vamos inserir outros contatos na agenda para efetuar as operações de select, adicionei a propriedade profissão nos novos contatos, basta copiar e colar no prompt de comando para inserir:
db.Agenda.insert({
nome: "Marcelo",
email: "marcelo@teste.com.br",
telefone: "(011) 982039999",
profissao: "Desenvolvedor",
enderecos: [{
rua: "Rua teste marcelo",
numero: "10",
bairro: "Centro",
cidade: "São Paulo",
estado: "São Paulo",
tipo: "residencial"
tipo: "comercial"
nome: "Gustavo",
email: "gustavo@teste.com.br",
profissao: "Engenheiro",
rua: "Rua teste gustavo",
email: "joao@teste.com.br",
telefone: "(011) 982039991",
profissao: "Arquiteto",
rua: "Rua teste joao",
numero: "20",
email: "maria@teste.com.br",
telefone: "(011) 982039992",
profissao: "Secretaria",
rua: "Rua teste maria",
email: "pedro@teste.com.br",
rua: "Rua teste pedro",
cidade: "Santos",
nome: "Antonio",
email: "antonio@teste.com.br",
profissao: "Veterinario",
rua: "Rua teste antonio",
Para consultar os dados é relativamente fácil, vou colocar alguns exemplos abaixo, já vimos acima a utilização do comando find() e do comando pretty().
Consultar todos contatos com o nome de "Antonio"
db.Agenda.find({ nome : "Antonio"}).pretty();
Consultar todos os contatos que possuem endereço comercial:
db.Agenda.find({"enderecos.tipo" : "comercial"}).pretty();
Consultar todos os contatos que residam na cidade de Santos:
db.Agenda.find({"enderecos.cidade" : "Santos"}).pretty();
Consultar todos os contatos que são engenheiros ou desenvolvedores:
db.Agenda.find({$or : [{"profissao": "Desenvolvedor"}, {"profissao": "Engenheiro"}]});
Consultar apenas um contato:
db.Agenda.findOne({"profissao": "Desenvolvedor"});
Consultar a lista em ordem alfábética:
db.Agenda.find().sort({"nome" : 1});
Podemos ainda utilizar o -1 para que os nomes venham na ordem contrária:
db.Agenda.find().sort({"nome" : -1});
Limitando o número de registros que queremos visualizar:
db.Agenda.find().sort({"nome" : 1}).limit(3);
Consultar no MongoDB é relativamente fácil e ele possui muitos recursos para efetuar suas consultas, para maiores detalhes dê um pulo na documentação.
Como alterar registros?
Para alterar um registro vamos primeiramente localiza-lo usando o comando find e procurando pelo id:
db.Agenda.find({"_id" : ObjectId("58e3a68c64efe176a32c63f1")}).pretty();
O comando acima me retonou o contato com nome de "Antonio" e agora vou alterar o email do "Antonio" para "antonio.santos@teste.com.br":
db.Agenda.update({"_id" : ObjectId("58e3a68c64efe176a32c63f1")}, {$set : {"email" : "antonio.santos@teste.com.br"}});
Como excluir registros?
Para excluir um registro basta utilizar o comando remove passando o id do objeto:
db.Agenda.remove({"_id" : ObjectId("58e3a68c64efe176a32c63f1")});
Essas foram algumas operações básicas com o MongoDB, existe muito mais opções para serem descobertas na documentação.
Todas essas operações foram feitas em linha de comando, muitas pessoas não gostam dessa abordagem e preferem aplicativos para operar um banco de dados como o sql developer ou o Toad para o ORACLE ou o Sql Server Management Studio para o SQL SERVER, o MongoDB possui alguns clients para operação, eu indico o uso do Robomongo como ferramenta de administração, é bem tranquilo e fácil de operar.
No próximo artigo desta série vamos integrar o MongoDB com o .NET, espero ter passado um pouco de conhecimento e facilitar a todos os leitores a imersão no mundo NOSQL!
Dúvidas e opiniões são sempre bem vindas!
MongoDB NoSql RoboMongo VisualStudioCode
6 comentários sobre "MongoDB – Parte 2 – Operações com o repositório."
6 de abril de 2017 às 16:51
Marcelão, parabéns pelo artigo. Sucesso sempre !
6 de abril de 2017 às 19:40
Mano!!! quanto tempo hein… valeu Rodrigão!!! abraços velho.
Reginaldo Barros da Cunha disse:
Muito boa a sua postagem, parabéns!
Obrigado Reginaldo!! Sucesso!
20 de outubro de 2017 às 18:28
Ótimo post sobre esse tipo de banco de dados. Parabéns e agora tem um novo usuário ativo no seu site.
Obrigado Alexandre, precisando estamos ae!
Post anterior MongoDB – Parte 1 – Definições e instalação em ambiente Windows.
Próximo post No liquidificador: Knockout + Bootstrap + Toastr.js + BootBox + Asp.NET MVC + BootsWatch + WebAPI + MongoDB