MongoDB. O banco NoSQL
Se você leu o meu post sobre Node.js, talvez tenha ficado curioso para entender mais sobre um banco de dados NoSQL. Aqui vamos explicar um pouco sobre como funciona o MongoDB.
MongoDB é um banco de dados não relacional, ou seja, não existe a relação entre uma tabela e outra com base em chave (e nem existe tabela). Ele é um banco de dados orientado a documentos, estes documentos são bem semelhantes a arquivos em JSON. A vantagem do MongoDB é que nossas aplicações podem ser escritas de forma natural, pois os dados podem ser salvos em estruturas hierárquicas, e praticamente tudo hoje interpreta JSON.
Exemplo de retorno da chamada simples db.collection.find()
Como vemos, a vantagem do MongoDB é que os dados são simples de compreender, o mesmo dado na “tabela” pode ser de diferentes tipos. Como o Felipe possui a informação de trabalho, que possui um objeto com as informações da empresa onde trabalha. Já o José, não tem estas informações.
Por que usar MongoDB?
Usar MongoDB em suas aplicações pode trazer muitos benefícios, como vimos até agora. Ele pode ser utilizado tanto de forma horizontal (igual mysql) quanto de forma vertical. Quando estruturamos um banco de dados, podemos enfrentar diversos problemas, coisa que no Mongo não encontramos. Como por exemplo, imagine só que você tem uma loja virtual. Naturalmente pensamos em uma tabela Produtos, com os dados dos produtos. Outra tabela Características, tamanho, comprimento, cor, tipo etc. Para que tudo se comunique temos que fazer ligações entre estas tabelas. Os conhecidos JOINS, ligando caracteristica X com o produto id Y. Esta manobra exige um alto processamento do banco de dados.
No MongoDB podemos ter simplesmente uma collection (tabela) produtos. Assim como no objeto do exemplo acima, um produto pode ter tamanho, comprimento, cor, altura, largura etc. Ao buscarmos os produtos, poderemos ter um exemplo parecido com este:
Como vemos, ambos são produtos da loja, e cada um pode ter suas características completamente diferentes uns dos outros.
Principais comandos
Irei explicar um pouco sobre os principais comandos, já que estamos acostumados com os comandos básicos do mysql, por exemplo.
mongod
: Inicia o servidor do banco de dados, ou seja, a permite que seu aplicativo acesse o banco de dados.
mongo
: Inicia o cliente do banco de dados, (igual quando fazemos login no mysql através do console). Aqui você pode executar suas chamadas
mongodump
: Faz o dump do banco
show databases
: Exibe todos os bancos de dados
use workshop
: Define qual banco de dados você deseja utilizar. Igual ao mysql_select_db()
show collections
: Lista todas as collections (tabelas) do bando de dados previamente selecionado.
db.customers.find()
: Executa a busca de todos os dados na collection customers. Você poderá utilizar filtros também, assim como as Wheres por exemplo db.customers.find({name: "Felipe"})
db.customers.insert({ nome: "José", idade: 18})
: Insere um dado na collection. Não se preocupe com o ID, o MongoDB irá inserir um _id automaticamente.
Ficamos por aqui, espero que tenhamos conseguido entender um pouco mais sobre este banco de dados e como ele pode nos ajudar. Caso tenha lhe ficado alguma dúvida, deixe seu comentário e não esqueça de compartilhar o post.