pymongo = python + mongodb

Post on 18-Dec-2014

3.260 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Introdução ao banco de dados não-relacional Orientado a Documentos MongoDB e apresentação do PyMongo, um driver/conector de Python para MondoDB. Realizada no VI Encontro do Python User Group de Pernambuco, no dia 14/08/2010.

TRANSCRIPT

http://groups.google.com/group/pug-pe

Brunno GomesBrunno Gomes

twitter.com/brunnogomes

brunnolgp@gmail.com

+

?

De acordo com o mongoDB.org:

“Banco de dados escalável, de alta-performance, open-source, schema-

free, orientado-a-documentos.”

documentos

{nome: 'mongo', tipo: 'BD'}

JSON ?

dicionários !

schema-free ?

● tipagem dinâmica

● migrations de graça

● ainda posso usar índices

migrations ?

{nome: 'mongo', tipo: 'BD'}

apenas faça:

{nome: 'mongo', tipo: 'BD', versao: 1.6}

muito + coisas legais

● Agregation + MapReduce

● Capped Collections

● GridFS

● Replica Sets

● Auto-Sharding

● Joins

pode fazer falta:

PyMongo

driver do mongoDB

para Python

instalando (com setuptools):

“easy_install pymongo”

usando:

>>> import pymongo

>>> from pymongo import Connection

>>> connection = Connection()

escolhendo uma base:

O mongoDB suporta várias bases independentes por instância.

Para acessar você pode usar dois estilos.

escolhendo uma base:

>>> db = connection.pugpe

ou

>>> db = connection['pugpe']

escolhendo uma coleção:

>>> membros = db.membros

ou

>>> membros = db['membros']

criando documentos:

>>> b = {'nome': 'Brunno', 'Idade': 24, 'linguagem': 'Python'}

salvando na coleção:

>>> membros.insert(b)

o campo _id:

todo documento inserido no banco deve conter um campo _id com valor único em toda coleção, caso ele não

exista é automaticamente adicionado (nesse caso usando o tipo binário ObjectId, que servirá como índice

padrão).

resgatando um documento:

>>> membros.find_one()

o find_one() já retorna um dicionário, não necessitando haver nenhum tipo

de conversão para trabalharmos.

o find_one() também suporta parâmetros para consultar elementos

específicos:

>>> membros.find_one( {'nome': 'Brunno'})

inserções em lote:

para facilitar nossa vida, podemos passar uma lista como argumento do insert(), ele vai inserir cada elemento

da lista, enviando somente um comando para o servidor.

>>> mais = [{'nome': 'Rodrigo', 'idade': 24, 'linguagem': 'Python'}, {'nome': 'Luciano', 'idade': 32, 'linguagem': ['Python', 'Perl']}

>>> membros.insert(mais)

para pegar mais de um documento usamos o find(), que agora nos retorna

um Cursor iterável:

>>> membros.find({'idade': 24})

lembram do schema-free?

>>> membros.find({'linguagem': 'Python'})

mais informações?

http://www.mongodb.org

http://api.mongodb.org/python

outros projetos:

MongoKit

Ming

MonoEngine

Django non-rel

Brunno GomesBrunno Gomes

twitter.com/brunnogomes

brunnolgp@gmail.com

top related