PyMongo = Python + MongoDB

brunnolgp 1,869 views 37 slides Aug 15, 2010
Slide 1
Slide 1 of 37
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37

About This Presentation

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.


Slide Content

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

Brunno GomesBrunno Gomes
twitter.com/brunnogomes
[email protected]

+

?

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ânci a.
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
[email protected]