quarta-feira, 12 de junho de 2013

Empresas que utilizam o MongoDB



Lista de algumas empresas que utilizam o MongoDB em suas aplicações


- Globo.com







- Github








- Bit.ly





-Foursquare






- Sailthru




Diferenças sintáticas entre Mysql e MongoDB



Principais diferenças de sintaxe entre os dois bancos :











Map Reduce no MongoDB



Map Reduce

É um modelo de programação utilizado por um grande processamento de dados com algoritimo distribuido paralelo em um cluster realizando a ordenação dos dados como por exemplo a contagem do numero de alunos de uma determinada fila . O map reduce pode ser comparado a uma procedure e utiliza-se de javascript para criar essas funções , além de ser bastante flexível

Exemplo de map/reduce para contar tags repetidas



Operações básicas com o Shell MongoDB



A seguir segue vários print´s de tela com operações básicas realizadas no Mongodb

1- Para visualizar comandos no Mongo basta utilizar o comando help no shell 



2 - Para visualizar a lista de bancos já criados utilize o comando > show dbs ; para utilizar um banco de dados utilize o comando > use nome_banco , para realizar inserção de dados utilize o comando > db.nome_banco.insert({})





3 - Para selecionar todos os dados de uma coleção utilize o seguinte comando 

>db.nome_banco.find()




4- Para realizar uma atualização em uma coleção utilize o seguinte comando 

> db.nome_banco.update({})








5- Para deletar dados em uma coleção utilize o seguinte comando 

> db.nome_banco.remove()










Vantagens de se utilizar o MongoDB

O MongoDB é um ótimo banco para trabalhar com uma grande quantidade de dados com isso escolhi alguns motivos pelos quais o Mongo é utilizado por grandes empresas que possuem uma quantidade de dados expressiva 

- Desenvolvimento Rápido
- Fácil armazenamento dos dados dos clientes com JSON flexível 
- Ótima performance 
- Alta escalabilidade

domingo, 9 de junho de 2013

Diferença de sintaxe entre o Mysql e o MongoDB

Esta imagem demonstra as principais diferenças de sintaxe entre os dois bancos de dados :



1 - colunas de dimensão agrupados são puxados
como teclas de função no mapa reduzindo o tamanho do conjunto de trabalho .
2 - medidas devem ser agregadas manualmente
3- agregações que dependem de um registro devem aguardar até a finalização 
4- funções de medidas podem usar lógica procedural 
5- Os filtros tem um mapeamento objeto relacional monitorando os registros
6-  Filtragens agregadas devem ser aplicadas ao conjunto dos resultados e não ao map/reduce
7 - crescente e decrescente



Controlando o MongoDB

Os comandos a seguir servem para iniciar , parar e reiniciar o MongoDB

Iniciando o MongoDB  :

1 -  $sudo service mongodb start

==============================================================

 Parando o MongoDB

2 - $sudo service mongodb stop

=============================================================

Resetando o MongoDB

3 - $sudo service mongodb restart


Atualizando o MongoDB no Linux

Realizando uma atualização no MongoDB

1 -  $sudo apt-get update
2 - $sudo apt-cache search mongodb
      mongodb
      mongodb-clients
      mongodb - dev
      mongodb-server

     mongodb-10gen
     mongodb18-10gen
     mongodb20-10gen

3-  Em seguida escolher a versão e realizar a instalação 

$sudo apt-get install



sábado, 8 de junho de 2013

Instalando o MongoDB no Linux

Os passos para a instalação do mongoDB são: 

1- Abrir o terminal e utilizar o comando apt-get
2  -  Utilizar o sudo-apt-get install mongodb




3- Criar duas pastas  utilizando os comandos : sudo mkdir /data
    cd /data
    sudo mkdir db
4- Alterar a permissão do usuário no acesso ao banco 
sudo chown seu_usuario_linux_db
Abra o terminal e vamos instalar o MongoDB via apt-get:
sudo apt-get install mongodb
5- Para iniciar o serviço do mongo no linux após a instalação , basta utilizar o comando mongod


Em seguida deve-se rodar o MongoDB com o comando mongod . Para iniciar o serviço deve-se abrir o cliente no terminal .

Benckmark - Pequeno comparativo entre o MongoDB e o Mysql

Realizando um pequeno comparativo de inserção de dados nos bancos MongoDB e Mysql podemos perceber uma grande diferença de performance entre os dois bancos de dados . O que dá uma vantagem ao MongoDB.


Mysql

Inserindo/lendo "title" => "Calvin and Hobbes"
Inserção
inserindo 50k
Tempo (segundos): 26.963586091995
inserindo 50k
Tempo (segundos): 35.74323797226
inserindo 50k
Tempo (segundos): 27.360780954361
inserindo 50k
Tempo (segundos): 27.239809989929
Leitura dos 200k : Tempo (segundos):0.16633296012878

=============================================================

MongoDB

inserindo 50k
Tempo (segundos): 6.9094848632812
inserindo 50k
Tempo (segundos): 9.049604177475
inserindo 50k
Tempo (segundos): 4.2792370319366
inserindo 50k
Tempo (segundos): 10.331115007401
Leitura dos 200k : Tempo (segundos): 0.14360809326172



quarta-feira, 5 de junho de 2013

Como renomear campos com MongoDB


Para o pessoal que utiliza o modelo relacional é uma coisa muito simples executar um comando como esse: ALTER TABLE ou ALTER COLUMN e outros a depender do banco utilizado. Porém com o MongoDB não possui essa facilidade apesar de ser bem fácil fazer o mesmo no MongoDB.

Uutilizaremos o modificador $rename

db.users.update( {} , { $rename : { ‘user_name’ : ‘name’ }}, true, true );

  1. {} – O conjunto vazio é porque queremos todos os registros;
  2. $rename – O modificador para o comando de atualização que neste caso: substituiu “user_name” por “name”;
  3. false – Permitir upserts caso o registro não exista;
  4. true – multi option: Significa aplicar comando para todos os registros, já que por padrão o update() atualiza apenas o primeiro registro.
Essa técnica é simples, porém não se esqueça de apagar seus índices antigos que utilizem a nomenclatura antiga e refaçam para a nova.