Trabalhar com bancos de dados e
desenvolvimento de software é, ao mesmo tempo, uma arte e uma habilidade. Como
toda habilidade, pode ser treinada para chegarmos àquela sensação de recompensa
quando as coisas funcionam. Assim, nada melhor do que utilizar as ferramentas
certas - de acordo com cada necessidade - para facilitar nosso trabalho. Quando
o assunto é NoSQL, um conjunto de ferramentas que funcionam muito bem juntas
são Python e MongoDB.
Por que MongoDB?
O MongoDB é um banco de dados de alta
performance orientado a documentos e é open source. Por ser orientado a
documentos (JSON) não possui transações nem joins. Resultado? Fazer consultas é
algo muito simples - são mais fáceis de escrever e mais fáceis de ajustar.
Outras características que o torna tão interessante:
- Auto - Sharding - o conceito de sharding é simples: quanto você
trabalha com uma grande quantidade de dados e está no limite de disco e/ou
a falta de espaço, a solução para este problema é ter os seus dados
divididos entre várias máquinas.
- Indexes - fáceis de criar e excelentes otimizadores de consultas -
falaremos no futuro sobre como criar e gerenciar seus indexes.
- Caso seja necessária a inserção de novos atributos, é possível inseri-los apenas nos documentos necessários sem precisar criar uma nova coluna e atribuir um valor a todos os documentos (registros no sql) na tabela relacionada.
Mas por que Python?
Para quem ainda não conhece, Python é
uma linguagem orientada a objetos, open-source, desenvolvida no início dos anos
90. O que a torna tão especial é sua sintaxe extremamente simples aliada às
suas poderosas funções e bibliotecas. Nos últimos anos, tem surgido como a
linguagem utilizada para ensino de Machine Learning pois, com poucas linhas de
código, é possível implementar inúmeros algoritmos.
Utilizando-se desta poderosa
estrutura, vamos conectar o Python ao MongoDB utilizando a biblioteca pymongo,
disponível na versão 2.5.1 em
Primeiros Passos
Vamos demonstrar abaixo o básico para
se trabalhar em conjunto com estas duas ferramentas.
import pymongo
# Para conectar com o banco de dados
myConnection =
pymongo.Connection("mongodb://localhost", safe=True)
## é uma boa prática usar safe=True,
para garantir que o MongoDB verifique a existência de erros
# Para selecionar uma base de dados
myDB = myConnection['NFL']
# Para selecionar uma collection
(análogo as tabelas nos bancos relacionais)
myCollection = myDB['NYGiants']
# Para fazer uma consulta de um único
documento
myQuery =
myCollection.find_one({'posicao':'qb'})
print myQuery
## Se o resultado da consulta for
mais de um documento, para exibí-los use o código
#for cada_doc in myQuery:
#print cada_doc
# Para inserir um novo documento
inserir = myCollection.insert({
'nome':'Leandro',
'posicao':'defender',
'ultimaPartida'
: True
}
)
## a variável 'inserir' armazenará o
_id do novo documento
# Para contar o número de documentos
conta = myCollection.count()
print str(conta) + ' documentos'
# Por fim, para atualizar um
documento
myCollection.update(
{'_id':
inserir
#Equivalente
à cláusula where do SQL
},
{'ultimaPartida'
: False}
)
# Para apagar um documento
myCollection.remove({
'nome':'Leandro'
},safe = True)
Nos próximos posts veremos mais
detalhes destas ferramentas, com mais exemplos ilustrando a simplicidade em
trabalhar com Python e MongoDB
Até o próximo post!
0 comentários:
Postar um comentário