Recentemente tive a oportunidade de conhecer e utilizar o Mongodb em um projeto pessoal de Internet das Coisas, e isso me motivou a relacionar os principais comandos básicos do Mongodb, tendo como principal finalidade ajudar quem está iniciando com esse novo banco de dados NoSQL.
#Instalação do MongoDB
A documentação do MongoDB é bem completa e detalhada, sendo assim, vamos listar abaixo alguns links diretos para você conseguir instalar em seu computador.
Se você seguiu os passos corretamente, meus parabens… Já temos o Mondodb instalado e pronto para executar nossos comandos.
#Tudo pronto para começarmos????
Abra o seu terminal e execute o seguinte comando:
mongod
ou
sudo service mongod start
Observação importante:
Se vocẽ por acaso fechar o terminal, o serviço do Mongodb irá cair, então para que tudo ocorra perfeitamente abra outra janela do terminal para prosseguir com os proximos comandos. :)
#Como se conectar ao MongoDB?
Para conectar no MongoDB, basta executar o comando abaixo:
mongo
Simples!!!! Estamos conectado no MongoDB. :-)
#Como criar um db (database)?
Para criarmos uma nova base de dados o comando é: use nomeDaSuaBase
Exemplo:
use meuBanco
#Como listar todas as databases?
Para listarmos todas as databases o comando é: show dbs
#Como acessar um determinado database?
Criei um database chamado meuBanco, para conectarmos a ele executamos o seguinte comando:
use meuBanco
Perai??? Para conectarmos ao db usamos o mesmo comando para criar o database???
Sim amiguinhos… Porém se atentem para não acabar criando outros dbs e acabar se confundindo na hora de usa-los, por exemplo meuBancoo (letra duplicada “o”).
#Como saber em qual db estou usando no momento?
Quando quisermos saber em qual db estamos conectados no momento usamos o comando:
db
#Como criar uma collection?
Antes de tudo verifique se esta conectado no db que criamos meuBanco, após isso para criarmos uma collections usamos o comando db.createCollection(nomeDaCollection).
Vamos criar a collection usuarios.
db.createCollection( "usuarios" )
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 collections criadas na base de dados?
Para realizar esse procedimento usamos o comando:
show collections
#Como inserir (insert) dados em nossa (collection) no MongoDB?
Para inserir os dados em uma collection, utilizamos o método, db.nomeDaCollection.insert(jsonQueVoceQuerInserir).
Agora vamos inserir uma pessoa na coleção usuarios:
db.usuarios.save( { nome:"Marcelo" , sobrenome:"Alves" } )
Agora vamos inserir uma pessoa com um telefone na mesma coleção:
db.usuarios.save( { nome:"João" , sobrenome:"Silva" , telefone:"1234-5678" } )
ou também podemos inserir uma pessoa com vários telefones criando um array para o campo:
db.usuarios.save( { nome:"Jean" , sobrenome:"Suissa" , telefone: [ "9898-9898" , "1234-5678" ] } )
Caso a collection usuarios não existir, ela será criada automaticamente.
#Agora vamos listar as pessoas
db.usuarios.find()
Onde será listados todos os documentos armazenados na coleção.
Podemos observar que o campo “_id”, foi criado automaticamente, ele é um identificador único de cada documento.
#Filtros
Podemos filtrar a busca fornecendo um objeto, no caso iremos buscar por todas as pessoas com o nome Marcelo
db.usuarios.find( { nome:"Marcelo" } )
Como todas as buscas existem várias opções de filtragem podemos começar com os clássicos:
db.usuarios.find( { idade : { "$gt" : 18 } } ) //maior que
db.usuarios.find( { idade : { "$lt" : 18 } } )//menor que
db.usuarios.find( { idade : { "$gte" : 18 } } )//maior ou igual que
db.usuarios.find( { idade : { "$lte" : 18 } } )//menor ou igual que
db.usuarios.find( { idade : { "$ne" : 18 } } )//diferente
Um pouco diferente do que estamos acostumados. No objeto de pesquisa especificamos o campo que queremos fazer a comparação e atribuímos a ele um outro objeto que possui como campo a comparação queremos fazer e o valor.
Os operadores OU e E que são um pouco difícil de entender já que a posição parece mais estranha veja-os:
db.usuarios.find( { "$or": [ { nome:"Marcelo" } , { nome:"Suissa" } ] } )
Temos o objeto de pesquisa com o campo $or que recebe como valor um array e irá executar o operador OU para cara um destes valores. Também poderá ser utilizado juntamente com qualquer outra comparação como:
db.usuarios.find( { telefone:"1234-5678" , "$or": [ { nome:"Marcelo" } , { nome:"Suissa" } ] } )
Neste caso buscará todas as pessoas que tiverem o telefone “1234-5678″ E o nome for Marcelo OU Suissa.
A operação AND pode ser feita de duas maneiras, se for com dois campos diferentes é bastante simples
db.usuarios.find( { nome:"Marcelo" , sobrenome:"Alves"} )
Mas se tivermos utilizando o mesmo campo é necessário utilizar o formato abaixo(que apenas funciona na v2.0+):
db.usuarios.find( { "$and": [ { nome : { "$ne" : "Marcelo" } } , { nome : { "$ne" : "Suissa" } } ] } )
Também no caso de se estar tentando estipular um intervalo de valores também pode ser feio assim:
db.usurios.find( { idade : { $gte : 18 , $lte : 29 } } )
Também para pesquisa temos o exists que buscas apenas os documentos que tem ou não tem um determinado campo (semelhante ao not null)
db.usuarios.find( { telefone : { $exists : true } } )
ou
db.usuarios.find( { telefone :{ $exists : false } } )
E o in que busca todos os documentos em que o campo for igual a qualquer um dos valores contidos no array
db.pessoas.find( { nome : { $in :[ "Marcelo" , "Alves" ] } } )
Bom acho que era isso, espero que tenha conseguido passar um pouco do meu conhecimento para vocês. Caso ainda tenha dúvidas, poderá consultara documentação do MongoDB .