pymongo = python + mongodb

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

Upload: brunno-gomes

Post on 18-Dec-2014

3.276 views

Category:

Technology


2 download

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

Page 1: PyMongo = Python + MongoDB

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

Page 2: PyMongo = Python + MongoDB

Brunno GomesBrunno Gomes

twitter.com/brunnogomes

[email protected]

Page 3: PyMongo = Python + MongoDB

+

Page 4: PyMongo = Python + MongoDB

?

Page 5: PyMongo = Python + MongoDB

De acordo com o mongoDB.org:

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

free, orientado-a-documentos.”

Page 6: PyMongo = Python + MongoDB

documentos

Page 7: PyMongo = Python + MongoDB

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

Page 8: PyMongo = Python + MongoDB

JSON ?

Page 9: PyMongo = Python + MongoDB

dicionários !

Page 10: PyMongo = Python + MongoDB

schema-free ?

Page 11: PyMongo = Python + MongoDB

● tipagem dinâmica

● migrations de graça

● ainda posso usar índices

Page 12: PyMongo = Python + MongoDB

migrations ?

Page 13: PyMongo = Python + MongoDB

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

apenas faça:

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

Page 14: PyMongo = Python + MongoDB

muito + coisas legais

Page 15: PyMongo = Python + MongoDB

● Agregation + MapReduce

● Capped Collections

● GridFS

● Replica Sets

● Auto-Sharding

Page 16: PyMongo = Python + MongoDB

● Joins

pode fazer falta:

Page 17: PyMongo = Python + MongoDB

PyMongo

Page 18: PyMongo = Python + MongoDB

driver do mongoDB

para Python

Page 19: PyMongo = Python + MongoDB

instalando (com setuptools):

“easy_install pymongo”

Page 20: PyMongo = Python + MongoDB

usando:

>>> import pymongo

>>> from pymongo import Connection

>>> connection = Connection()

Page 21: PyMongo = Python + MongoDB

escolhendo uma base:

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

Para acessar você pode usar dois estilos.

Page 22: PyMongo = Python + MongoDB

escolhendo uma base:

>>> db = connection.pugpe

ou

>>> db = connection['pugpe']

Page 23: PyMongo = Python + MongoDB

escolhendo uma coleção:

>>> membros = db.membros

ou

>>> membros = db['membros']

Page 24: PyMongo = Python + MongoDB

criando documentos:

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

Page 25: PyMongo = Python + MongoDB

salvando na coleção:

>>> membros.insert(b)

Page 26: PyMongo = Python + MongoDB

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).

Page 27: PyMongo = Python + MongoDB

resgatando um documento:

>>> membros.find_one()

Page 28: PyMongo = Python + MongoDB

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

de conversão para trabalharmos.

Page 29: PyMongo = Python + MongoDB

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

específicos:

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

Page 30: PyMongo = Python + MongoDB

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.

Page 31: PyMongo = Python + MongoDB

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

>>> membros.insert(mais)

Page 32: PyMongo = Python + MongoDB

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

um Cursor iterável:

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

Page 33: PyMongo = Python + MongoDB

lembram do schema-free?

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

Page 34: PyMongo = Python + MongoDB

mais informações?

http://www.mongodb.org

http://api.mongodb.org/python

Page 35: PyMongo = Python + MongoDB

outros projetos:

MongoKit

Ming

MonoEngine

Django non-rel

Page 36: PyMongo = Python + MongoDB
Page 37: PyMongo = Python + MongoDB

Brunno GomesBrunno Gomes

twitter.com/brunnogomes

[email protected]