Você está na página 1de 5

MONGODB: DO CONCEITO IMPLEMENTAO

Felipe Calasans de Sousa

Guilherme de Paiva Santos

felipecalasans@gmail.com

guilherme.ps20@gmail.com

Faculdades Iesgo
Av. Braslia, n. 2001 Formosa-GO
Abstract
This article aims to present and instruct MongoDB
implementation. In it will be presented: that is, their
characteristics, advantages and disadvantages, as well
as instructing the implementation and operation of the
bank. The article includes a set of standard practices
and procedures of this technology. The application of
these practices and procedures enhances its
importance to use the technical content effectively.

1. Introduo
Este artigo tem como foco, guiar passo a passo a
implementao e a utilizao do MongoDB para
iniciantes. Tambm ser abordado alguns dos conceitos
bsicos do MongoDB e de suas tecnologias. O objetivo
auxiliar aqueles que buscam seus primeiros contatos
com esta ferramenta, mostrando os comandos primrios
para as utilizaes mais bsicas, sem um maior
aprofundamento.
Devido ao aumento do interesse em banco de dados
que fossem capazes de suprir necessidades que os
relacionais no conseguiam, surgiu o NoSQL.
Basicamente o NoSQl um termo usado para definir
um sistema de banco de dados que no utiliza o padro
SQL. Baseado nessa ideia, veio o surgimento do
MongoDB que um banco de dados orientado a
documentos. Ele tambm um sistema Open Source,
desenvolvido em C++, que funciona de forma
semelhante ao JSON, armazenando dados em grupos
de documentos. [1]

1.1 Banco
Documentos

de

Dados

Orientado

Os bancos de dados orientados a documentos


diferem muito dos tradicionais bancos de dados
relacionais. Ao invs de armazenar dados em estruturas
rgidas, como tabelas; eles os armazenam em
documentos vagamente definidos. No caso de tabelas
de sistemas de gerenciamento de bancos de dados
relacionais (RDBMS), se for preciso acrescentar uma
nova coluna, ser necessrio mudar a definio da

prpria tabela, que acrescentar aquela coluna a todos


os registros existentes (embora potencialmente com
valor nulo). Isso se deve ao estrito design baseado em
esquema do RDBMS. No entanto, em documentos,
possvel acrescentar novos atributos aos documentos
individuais sem que outros sejam alterados. Isso porque
o design de bancos de dados orientados a documentos
costuma ser sem esquema. [1]

1.2 NoSQL
Segundo o autor do NoSQL o Carlo Strozzi: O
movimento NoSQL completamente distinto do
modelo relacional e, portanto, deveria ser mais
apropriadamente chamado NoREL ou algo que
produzisse o mesmo efeito.[2]
"O NoSQL surgiu da necessidade de uma
performance superior e de uma alta escalabilidade.
Tem uma grande facilidade na distribuio horizontal,
ou seja, mais dados, mais servidores, no
necessariamente de alta performance. Um grande
utilizador desse conceito o Google, que usa
computadores de pequeno e mdio porte para a
distribuio dos dados; essa forma de utilizao
muito mais eficiente e econmica. Alm disso, os
bancos de dados NoSQL so muito tolerantes a
erros".[2]

1.3 JSON/BSON
Como j citado, o MongoDB um software de
banco de dados orientados a documentos, e seguindo
essa premissa vemos que a principal forma de
organizao, acesso e manipulao dos dados feita
atravs de documentos semelhantes aos usados pelo
JSON (JavaScript Object Notation), que tem um
formato leve, e devido a essa caracteristica, realiza a
troca de dados computacionais com mais rapidez.
Vemos que o JSON, como o prprio nome ja diz, um
subconjunto da notao de objeto JavaScript, e tem a
vantagem de no requerer JavaScript para us-lo. O
MongoDB utiliza o BSON para realizar o
armazenamento de dados. O BSON uma verso

binria do JSON, que guarda os dados utilizando um


esquema de pares chave/valor.

connecting to: test


>

1.4 Mongo DB

2.2 Instalando no Windows

O MongoDB se destaca entre os projetos de Banco


de Dados NoSQL, pois a sua linguagem de consulta,
baseada em documentos, muito poderosa e facilita a
transio de um banco relacional para o MongoDB.
Cdigos SQL podem ser facilmente convertidos para
cdigos do MongoDB. Ele tambm fcil de ser
instalado; um software livre que usa a verso 3.0 da
GNU AGPL; alm de rodar em quase todas as
plataformas.

1 - Acesse o site: http://www.mongodb.org/downloads


e faa o download da verso desejada, para o Windows
32 ou 64 bits.

2. Instalao do Mongo DB
Uma grande vantagem do MongoDB a sua
simplicidade e facilidade no processo de instalao.
Alm disso, o MongoDB pode ser instalado em
diversas plataformas, como: Linux, Windows, Mac OS,
Solaris, entre outros.
Este artigo, apresentar em formato passo-a-passo, o
processo de instalao do MongoDB baseado em dois
sistemas: Debian e Windows.

2.1 Instalando no Debian


1 - Acesse o site: http://www.mongodb.org/downloads
e faa o download da verso desejada, para o Debian
32 ou 64 bits.
2 - Aps o download, localize o arquivo e extraia o seu
contedo.
3 - V at o diretrio onde voc extraiu o arquivo, e
acesse o subdiretrio "bin" do "mongodb":
# cd mongodb-linux-x86_64-2.4.6/bin
4 - Dentro do subdiretrio utilize o comando:
# ./mongod
6 - Aps a execuo do comando, o MongoDB j
estar instalado. Em caso de falha ou dvida recorra ao
grupo de suporte da ferramenta:
http://groups.google.com/group/mongodb-user.
7 - Agora, iremos iniciar o MongoDB com o seguinte
comando:
# mongo
8 - Em seguida, veremos a tela inicial do shell
MongoDB. Onde poderemos comear a utilizar:
MongoDB shell version: 2.4.6

2 - Aps o download, localize o arquivo e extraia o seu


contedo para a unidade C:. Para trazer uma
simplicidade maior a este processo, renomeie a pasta
onde o contedo foi extrado, para mongo.
3 - Logo aps, precisaremos criar um diretrio de
dados. Portanto, v at a raiz da unidade C: e crie
uma pasta chamada data. Dentro dela, crie outra
pasta chamada db.
4 - mais conveniente configurar o servidor do
MongoDB como um servio que o Windows controle.
Por isso, acesse o prompt de comando (cmd)
5 - Acesse a pasta bin que est localizada em
c:\mongo\bin.
6 - Aps obter acesso a pasta, instale o MongoDB
digitando o seguinte comando:
mongod --install --logpath c:\mongo\logs
--logappend
--bind_ip
127.0.0.1
directoryperdb
7- Se tudo ocorrer bem, a seguinte mensagem ser
exibida:
all output going to c:\mongo\logs
Creating service MongoDB.
Service creation successful.
Service can be started from the command line
via 'net start "MongoDB"'.
8- Com o Mongo instalado como servio, possvel
inici-lo com o seguinte comando:
> net start "MongoDB"
9 - Em caso de sucesso na inicializao do servio, nos
depararemos com a seguinte mensagem:
The Mongo DB service is starting.
The Mongo DB service was started
successfully.
10 - Agora possvel executar o cliente de shell do
MongoDB executando o comando:
>mongo

11 - Por fim, veremos a seguir a tela inicial do shell


MongoDB:
MongoDB shell version: 1.8.1
connecting to: test
>

> db.livro.insert({nome: "No h dia facil",


autor: "Mark Owen", editora: "paralela",
edicao: 1})

3. Comandos Bsicos no MongoDB

> db.livro.insert({nome: "O Alquimista", autor:


"Paulo Coelho", editora: "Editora Sextante",
edicao: 1})

Como j citado, o MongoDB utiliza o JSON que


um subconjunto da notao de objetos da linguagem
JavaScript. Por isso, ele usa mtodos para realizar suas
operaes. Dentre essas operaes, as que trabalham
com manipulao de dados, utilizam o BSON (uma
verso binaria do JSON) que guarda os dados
utilizando um esquema de pares: Chave e valor. Para
ilustrar esses conceitos e manter o foco do artigo, a
seguir ser ensinado o passo a passo de uma
implementao simples no MongoDB.
Imagine a seguinte situao: Voc precisa
implementar um sistema para armazenar os dados de
um cadastro de livros de uma biblioteca. Onde voc
ter que guardar o nome do livro, o autor, a editora e a
edio.
De inicio iremos criar um arquivo ou Database, com
nome de "biblioteca". O comando "use", cria um
arquivo caso no exista um com o mesmo nome, no
entanto, se j existir, o comando "use" ir acessa-lo.
Na nossa aplicao, o utilizaremos da seguinte forma:
> use biblioteca

> db.livro.insert({nome: "Cheio de Charme",


autor: "Marian Keyes", editora: "Bertrand
Brasil", edicao: 1})
> db.livro.insert({nome: "A menina que
roubava livros", autor: "Markus Zusak",
editora: "Intrinseca", edicao: 1})
> db.livro.insert({nome: "A cabana", autor:
"William P. Young", editora: "Sextante",
edicao: 1}
Aps inserir os novos livros, vamos salvar as
alteraes:
> db.save
Agora, para ver as informaes que j esto salvas
na coleo livro, usamos o comando:
> db.livro.find()

O nosso arquivo biblioteca ainda no est totalmente


criado. Para um arquivo passar a existir propriamente,
ele necessita de uma coleo com informaes. No
passo seguinte, iremos criar e j adicionar os primeiros
dados em uma coleo chamada "livro", dentro do
nosso arquivo biblioteca:

Mas, caso voc queira encontrar um livro em


especifico, a funo find tambm permite que
aperfeioe a sua busca. Para isso, basta passar como
parmetro, chaves e valores do que deseja encontrar:

> db.livro.save({nome: "O Senhor dos Aneis:


Sociedade do Anel", autor: "J.R.R Tolkien",
editora: "Martins Fontes Edito", edicao: 2})

OBS: Essa busca nos trar todos os livros cuja edio


seja a primeira

Agora, veja que o arquivo foi realmente criado. Use


o comando a seguir para listar todos os arquivos
existentes:
> show dbs
Caso queira ver as colees existentes no seu
arquivo, utilize o seguinte comando:
> show collections
Em seguida, vamos adicionar mais alguns livros a
essa biblioteca:

> db.livro.find({edicao: 1})

Para perfeioar ainda mais a nossa busca, podemos


utilizar operadores condicionais. A seguir alguns
exemplos:
$lt (menor que);
$lte (menor ou igual a);
$gt (maior que);
$gte (maior ou igual a);
$all (corresponder a todos os valores em um
array);
$exists (verificar se um campo existe ou
no);
$mod (mdulo);
$ne (no igual);

$in (corresponder a um ou mais valores em


um array);
$nin (corresponder a valores zero em um
array);
$or (corresponder uma consulta a outra);
$nor (no corresponder uma consulta nem
outra);
$size (corresponder qualquer array com
nmero definido de elementos);
$type (corresponder valores com tipo de
dados BSON especificado);
$not (no igual a). [1]
Caso precise alterar informaes em uma coleo, o
MongoDB utiliza uma funo chamada update, onde
voc passa dois parmetros separados por virgula. O
primeiro o parmetro de busca (como no find) e o
segundo o novo valor atualizado:
> db.livro.update({nome: "Cheio de Charme"},
{nome: "Cheio de Charme", autor: "Marian
Keyes", editora: "Bertrand Brasil", edicao: 2})
OBS: Lembrando que para manter as alteraes
realizadas em um arquivo, usamos o comando
"db.save", que guarda tudo que foi feito.

Para apagar informaes na coleo livro, utilize o


comando "remove". Passe como parmetro uma busca
(como j mostrado anteriormente), como no exemplo a
seguir:
>
db.livro.remove({nome:
Charme"})

"Cheio

de

Aps realizar todos os procedimentos, para sair do


shell MongoDb, use o simples comando exit. Como a
seguir:
> exit
Para auxiliar suas futuras aplicaes, segue uma lista
de comandos e funes do MongoDB que podem vir a
ser teis:

db.addUser("nomeUsuario", "senha") Adiciona


um novo usurio;

db.createCollection("nomeColecao") - Cria
uma
coleo, passa o nome da coleo como
parmetro;

db.getCollection("nomeColecao") - Recebe
o
nome de uma coleo como parmetro e
retorna o nome do banco e coleo;

db.getCollectionNames() - Retorna uma


lista
de String contendo os nomes das colees
existentes no arquivo;
db.getLastError() - Retorna a uma String
contendo a ultima mensagem de erro;
db.getMongo() - Retorna o servidor
conectado
ao Objeto;
db.getName() - Retorna o nome do arquivo
em
que voc est;
db.hostInfo() - Mostra o status do host;
db.listCommands() - Lista todos os
comandos do
banco de dados;
db.repairDatabase() - repara o DB;
db.stats() - Mostra o status atual do DB;
db.version() - Mostra a verso do DB;
db.removeUser("nomeUsuario") - Remove
o
usurio;
db.auth("nomeAdministrador","senhaAdmi
nistra
dor") - Autentica um usurio a realizar aes;
db.system.users.find() - lista todos os
usurios
do sistema;
db.serverStatus() - Mostra o status do
servidor.

Em caso de duvidas de como utilizar um comando,


alm da documentao e do frum de suporte oficial do
Mongo, voc tambm pode utilizar o comando "help" e
"db.help()". Vale ressaltar, que podemos utilizar o
autocomplete do MongoDB, pressionando a tecla
"tab".

4. Concluso
Com base no que vimos ao longo do artigo,
possvel concluir que, o MongoDB um banco de
dados no relacional, que utiliza a tecnologia
JSON/BSON. Por tratar os dados como objetos que so
inseridos em colees, possvel ver que, a
manipulao e acesso a dados feito de uma forma
mais simples. Sendo assim, uma boa opo para se
trabalhar com grandes ou pequenas quantidades de
dados. Alm de ter a vantagem de ser implementado
de forma fcil e em diversas plataformas. Embora seja
feito em c++, utiliza Javascript para trabalhar com os
dados.
Esperamos que este trabalho tenha auxiliado nos
primeiros contatos com a tecnologia do MongoDB, e

que sirva como um guia inicial para a implementao e


utilizao bsica.

5. Referncias
[1]
http://www.ibm.com/developerworks/br/library/
os-mongodb4/
[2] http://imasters.com.br/artigo/17043/banco-dedados/nosql-voce-realmente-sabe-do-queestamos-falando/

Você também pode gostar