http://groups.google.com/group/pug-pe
Brunno 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-do...
documentos
{nome: 'mongo', tipo: 'BD'}
JSON ?
dicionários !
schema-free ?
●   tipagem dinâmica
●   migrations de graça
●   ainda posso usar índices
migrations ?
apenas faça:

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


{nome: 'mongo', tipo: 'BD', versao: 1.6}
muito +
coisas legais
●   Agregation + MapReduce
●   Capped Collections
●   GridFS
●   Replica Sets
●   Auto-Sharding
pode fazer falta:


●   Joins
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
    ...
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
e...
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(
         ...
inserções em lote:

  para facilitar nossa vida, podemos
 passar uma lista como argumento do
insert(), ele vai inserir cad...
>>> mais = [{'nome': 'Rodrigo',
             'idade': 24,
             'linguagem': 'Python'},
            {'nome': 'Lucia...
para pegar mais de um documento
usamos o find(), que agora nos retorna
         um Cursor iterável:

  >>> membros.find({'...
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 Gomes


 twitter.com/brunnogomes
  brunnolgp@gmail.com
PyMongo = Python + MongoDB
Upcoming SlideShare
Loading in …5
×

PyMongo = Python + MongoDB

3,983 views
3,822 views

Published on

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.

Published in: Technology
1 Comment
5 Likes
Statistics
Notes
No Downloads
Views
Total views
3,983
On SlideShare
0
From Embeds
0
Number of Embeds
1,569
Actions
Shares
0
Downloads
85
Comments
1
Likes
5
Embeds 0
No embeds

No notes for slide

PyMongo = Python + MongoDB

  1. 1. http://groups.google.com/group/pug-pe
  2. 2. Brunno Gomes twitter.com/brunnogomes brunnolgp@gmail.com
  3. 3. +
  4. 4. ?
  5. 5. De acordo com o mongoDB.org: “Banco de dados escalável, de alta- performance, open-source, schema- free, orientado-a-documentos.”
  6. 6. documentos
  7. 7. {nome: 'mongo', tipo: 'BD'}
  8. 8. JSON ?
  9. 9. dicionários !
  10. 10. schema-free ?
  11. 11. ● tipagem dinâmica ● migrations de graça ● ainda posso usar índices
  12. 12. migrations ?
  13. 13. apenas faça: {nome: 'mongo', tipo: 'BD'} {nome: 'mongo', tipo: 'BD', versao: 1.6}
  14. 14. muito + coisas legais
  15. 15. ● Agregation + MapReduce ● Capped Collections ● GridFS ● Replica Sets ● Auto-Sharding
  16. 16. pode fazer falta: ● Joins
  17. 17. PyMongo
  18. 18. driver do mongoDB para Python
  19. 19. instalando (com setuptools): “easy_install pymongo”
  20. 20. usando: >>> import pymongo >>> from pymongo import Connection >>> connection = Connection()
  21. 21. escolhendo uma base: O mongoDB suporta várias bases independentes por instância. Para acessar você pode usar dois estilos.
  22. 22. escolhendo uma base: >>> db = connection.pugpe ou >>> db = connection['pugpe']
  23. 23. escolhendo uma coleção: >>> membros = db.membros ou >>> membros = db['membros']
  24. 24. criando documentos: >>> b = {'nome': 'Brunno', 'Idade': 24, 'linguagem': 'Python'}
  25. 25. salvando na coleção: >>> membros.insert(b)
  26. 26. 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).
  27. 27. resgatando um documento: >>> membros.find_one()
  28. 28. o find_one() já retorna um dicionário, não necessitando haver nenhum tipo de conversão para trabalharmos.
  29. 29. o find_one() também suporta parâmetros para consultar elementos específicos: >>> membros.find_one( {'nome': 'Brunno'})
  30. 30. 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.
  31. 31. >>> mais = [{'nome': 'Rodrigo', 'idade': 24, 'linguagem': 'Python'}, {'nome': 'Luciano', 'idade': 32, 'linguagem': ['Python', 'Perl']} >>> membros.insert(mais)
  32. 32. para pegar mais de um documento usamos o find(), que agora nos retorna um Cursor iterável: >>> membros.find({'idade': 24})
  33. 33. lembram do schema-free? >>> membros.find({ 'linguagem': 'Python'})
  34. 34. mais informações? http://www.mongodb.org http://api.mongodb.org/python
  35. 35. outros projetos: MongoKit Ming MonoEngine Django non-rel
  36. 36. Brunno Gomes twitter.com/brunnogomes brunnolgp@gmail.com

×