Introdução ao MongoDB
Autor: Nataniel Martins Oliveira | Publicado: 2014-11-17T15:58:00-08:00





Introdução ao MongoDB



Estou utilizando o&nbsp;MongoDB&nbsp;em um projeto pessoal, e isso me motivou a relacionar oscomandos básicos do MongoDB, com a finalidade de ajudar quem está começando com esse banco de dados&nbsp;NoSQL.



Se você já tem instado o MongoDB, pode ir direto para parte dos&nbsp;Comandos Básicos do MongoDB.

Instalação do MongoDB

A&nbsp;documentação do MongoDB&nbsp;é bem completa e extensa, sendo assim, vamos listar abaixo três links diretos para instalação do MongoDB.

Instalação do MongoDB no Windows
Instalação do MongoDB no Linux
Instalação do MongoDB no Mac


Pronto! Agora que já temos o MongoDB instalado, vamos seguir com um Workflow para facilitar o entendimento dos comandos básicos do MongoDB.

Comandos Básicos

Temos o seguinte Workflow. Estamos desenvolvendo um site para a empresa Ognom (Nome fictício criado para auxílio a esse post), onde temos um simples formulário de contato. Esse formulário possui 3 campos: Nome (String), Email (String) e Mensagem (String).
Neste momento não temos o front-end, nem o back-end, mas já definimos que queremos utilizar o MongoDB como banco de dados. E de ínicio surgem algumas dúvidas:

Como iniciar o MongoDB?
Como conectar no MongoDB?
Como criar uma base de dados?
Como listar todas as bases dados existentes?
Como acessar uma base de dados?
Como verificar em qual base de dados você esta?
Como criar uma estrutura de dados (collection)?
Como listar todas as estruturas de dados (collections) existentes na base de dados?
Como inserir (insert) na estruta de dados(collection)?
Como visualizar os dados que estão dentro de uma estrutura de dados (collection)?
Como atualizar (update) os dados que estão dentro de uma estrutura de dados(collection)?
Como deletar (delete) os dados que estão dentro de uma estrutura de dados(collection)?

Como deletar (drop) uma base de dados?


Agora que já temos nossas dúvidas listadas, vamos analisar alguns trechos de código.

Como iniciar o MongoDB?

Abra o terminal e execute o seguinte comando:

mongod



Obs: Se você fechar o terminal o serviço do MongoDB vai cair, sendo assim, não feche, e abra um novo para executar os próximos comandos.

Como conectar no MongoDB?

Para conectar no MongoDB, basta executar o comando abaixo:

mongo



Pronto! Estamos conectado no MongoDB. :-)

Como criar uma base de dados no MongoDB?

O comando para criar uma nova base de dados é:&nbsp;use nomeDaBaseDeDados.
Vamos, criar a base de dados do nosso cliente, a Empresa Ognom:

use siteOgnom



Como listar todas as bases dados existentes no MongoDB?

O comando para listar todas as base de dados é:

show dbs



Como acessar uma base de dados no MongoDB?

Criamos a base de dados para o nosso cliente como&nbsp;siteOgnom, para conectar na base de dados basta executar o comando:

use siteOgnom



É isso mesmo, para conectar no banco utilizamos o mesmo comando que executamos para criar a base de dados, ou seja, tome cuidado para não acabar criando várias outras base de dados, como por exemplo&nbsp;siteOgnomm&nbsp;(duplicamos o m no final da palavra).

Como verificar em qual base de dados você esta no MongoDB?

Para verificar em qual base de dados você esta conectado, basta executar o comando:

db



Como criar uma estrutura de dados (collection) no MongoDB?

Verifique se você esta conectado na base de dados&nbsp;siteOgnom, e vamos criar a estrutura. Para criar a estrutra de dados(collection) utilizamos o métodobd.createCollection(nomeDaCollection, opcoesDeConfiguracao), este método aceita dois valores(atributos). O primeiro&nbsp;nomeDaCollection&nbsp;é obrigatório, e o segundo,opcoesDeConfiguracao&nbsp;não é obrigatório.

Para mais informação sobre o método&nbsp;db.createCollection(nomeDaCollection, opcoesDeConfiguracao),&nbsp;acesse a documentação do MongoDB.

Vamos criar a collection&nbsp;contato, para adicionar os dados que vai vir do formulário de contato:

db.createCollection(‘contato’)



Após a execução do médoto, você terá o seguinte retorno de sucesso:

{ "ok" : 1 }



Agora temos nossa estrutura de dados.

Como listar todas as estruturas de dados (collections) existentes na base de dados do MongoDB?

Para listar todas as collections existentes na base de dados que você está, basta executar o seguinte comando:

show collections



Como inserir (insert) na estruta de dados (collection) no MongoDB?

Para inserir os dados em uma collection, basta utilizar o método,db.nomeDaCollection.insert(jsonQueVoceQuerInserir).
Como exemplo vamos considerar que um cliente do Site Ognom, preencheu o formulário, com os seguinte dados:

Nome:&nbsp;Marco Bruno
Email:&nbsp;marco.bruno.br@gmail.com
Mensagem:&nbsp;Inserindo dados de Exemplo no MongoDB

Agora já temos os dados de um contato pelo formulário e sabemos qual o método que devemos utilizar. Vamos ver como fica o código para inserir os dados no MongoDB:

db.contato.insert({
name: ‘Marco Bruno’, 
email: ‘marco.bruno.br@gmail.com’, 
mensagem: ‘Inserindo dados de Exemplo no MongoDB’
})



Se a collection contato, não existir ela é criado automaticamente, sendo assim, tome cuitado para não criar uma nova base de dados e inserir os dados na mesma.

Como visualizar os dados que estão dentro de uma estrutura de dados (collection) no MongoDB?

Para ver se os dados estão sendo inseridos dentro da nossa collection&nbsp;contato, vamos utilizar o método&nbsp;db.nomeDaCollection.find():

db.contato.find()



O retorno não é muito agradável, fica da seguinte forma:

{ "_id" : ObjectId("21252b31e3b6e54896b6c8010113123f"), "name" : "Marco Bruno", "email" : "marco.bruno.br@gmail.com", "mensagem" : "Inserindo dados de Exemplo no MongoDB" }



Realmente não é muito legível, da para melhorar adicionando uma formatação no retorno. Podemos adicionar o&nbsp;pretty(), o comando fica da seguinte forma:

db.contato.find().pretty()



E o retorno:

{
 "_id" : ObjectId("21252b31e3b6e54896b6c8010113123f"),
 "name" : "Marco Bruno",
 "email" : "marco.bruno.br@gmail.com",
 "mensagem" : "Inserindo dados de Exemplo no MongoDB"
}



Agora sim, muito mais legível.

Para mais informação sobre o método&nbsp;db.nomeDaCollection.find(),&nbsp;acesse a documentação do MongoDB.

Como atualizar (update) os dados que estão dentro de uma estrutura de dados (collection) do MongoDB?

Para atualizar uma collection utilizamos o método,&nbsp;db.nomeDaCollection.update(query, atualizacao, opcoesDeConfiguracao).
Vamos dizer que o email do cliente não é&nbsp;marco.bruno.br@gmail.com, e temos que alterar o email para&nbsp;marco.bruno@pinceladasdaweb.com.br, vamos ver como fica nosso método:

 db.contato.update({name: ‘Marco Bruno’}, {$set: {email: ‘marco.bruno@pinceladasdaweb.com.br’}})



Se não utilizar o&nbsp;$set&nbsp;todos os dados do contato como, Nome, Email e Descrição, serão substituidos pelo email marco.bruno@pinceladasdaweb.com.br, ou seja, o&nbsp;$set&nbsp;faz com que seja mantido todos os dados, e alterado apenas o email.

Como remover (remove) os dados que estão dentro de uma estrutura de dados (collection) no MongoDB?

Para deletar algum dado que esta dentro de uma collection utilizamos o método,db.nomeDaCollection.remove(query, justOne). Para remover o dado que inserimos anteriormente na collection&nbsp;contato, o método fica da seguinte forma:

db.contato.remove({name: ‘Marco Bruno’})



Para remover todos os dados da collection&nbsp;contato, basta não passar nenhum parâmetro para o método:

db.contato.remove()



Como deletar (drop) uma estrutura de dados (collection) no MongoDB?

Agora nosso cliente não quer mais ter o formulário de contato, ou seja, não vamos mais utilizar a collection&nbsp;contato. Para deletar a collection&nbsp;contato&nbsp;temos o métododb.nomaDaCollection.drop(), conforme demonstrado abaixo:

﻿﻿﻿db.contato.drop()



Vamos ter o seguinte retorno após a execução do método:

true



Como deletar (drop) uma base de dados no MongoDB?

Infelizmente nosso cliente não foi muito com a cara do MongoDB, e pediu para deletar a base de dados dele. Para deletar a base de dados, precisamos estar dentro da mesma, e executar o seguinte método:

db.dropDatabase()



Espero que ajude quem esta começando a utilizar o MongoDB, ou que tenha dado curiosidade de começar a testar ele agora.

()