20 de jul de 2012

Bora lá, MongoDB!

MongoDB é um banco não relacional, orientado à documento. Com isso é um banco que mais se parece com um banco relacional, mas podendo usar o poder de um esquema não relacional.
Além de ele ser um banco de dados simples de usar a documentação é bem extensa e com boa qualidade para pesquisa.


Sempre que falamos que em computação (TI), sabemos que não existe bala de prata, recomendo a leitura desse artigo http://en.wikipedia.org/wiki/No_Silver_Bullet, pois não é o foco do artigo, e sempre estudar a maior quantidade possível sobre como resolver seu problema.
Podemos usar o melhor de cada solução para resolver o problema da melhor forma possível, podendo até mesmo integrar um banco relacional com um banco baseado em noSQL.

Mais sobre bala de prata

Vantagens e desvantagens de se usar o mongoDB

Vantagem:
* Alta performance. Uma única consulta já te retorna tudo o que você precisa saber a respeito do documento. Esta é uma das razões pelas quais vêm sendo adotado em projetos que exigem alta performance.
* Schema Aberto -> Tipagem dinamica, Migrações, Flexibilidade, cache.
* GeoLocalização Nativa
* Open Source (Diminui seus custos no projeto).

Desvantagem: Se você quiser alterar todos os registros relacionados a uma unidade semântica, precisa tratá-los um a um.

Mais: 3-razoes-para-usar-mongodb

Baseado em documento

No MongoDB, os registros são documentos e utiliza a sintaxe JSON. Baseado na sintaxe o documento a ser feito no mongo é basicamente um JSON, exemplo:

{
'id':10,
'cliente':'Organizações Tabajaras',
'endereco':'Rua qualquer'
}

Umas das vantagens do Mongo é poder atualizar seus dados dinamicamente, nesse exemplos inserimos um registro a mais no documento.

{
'id':10,
'cliente':'Organizações Tabajaras',
'endereco':'Rua qualquer',
'especialidade':'seguro'
}

Para inserir dados no mongodb, você pode usar um agregador podendo ser distinto ou não:

Inserindo distintos:
db.clientes.save({'id':10})
db.clientes.save({'cliente':'Organizações Tabajaras'})
db.clientes.save({'endereco':'Rua qualquer'})

Inserindo nao distintos:
db.clientes.save({'id':10,'cliente':'Organizações Tabajaras','endereco':'Rua qualquer'})

Para visualizar os registros do documento usamos o seguinte comando:

db.clientes.find();

ou tambem podemos buscar por todos os registro que contenha o nome do cliente:

db.pessoas.find( { cliente:'Organizações Tabajaras'} )

Operadores

Alguns exemplos:

< || $lt
<= || $lte
> || $gt
>= || $gte

Veja mais em http://www.mongodb.org/display/DOCS/Advanced+Queries

Comparação com SQL:

SQL Padrão: CREATE TABLE cliente (id INTEGER, nome VARCHAR(255))

No mongo: Basta inserir que a criação do documento é feita dinamicamente. Exemplo: db.clientes.insert()

SQL Padrão: Insert into clientes (nome) values ('tabajaras');

No mongo: db.clientes.insert({nome:'tabajaras'})

SQL Padrão: SELECT * FROM clientes

No mongo: db.clientes.find()

mais em http://www.mongodb.org/display/DOCS/Advanced+Queries

flw galera.

Nenhum comentário:

Postar um comentário