SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Python e MongoDB
  Christiano Anderson
    Twitter: @dump
    Blog: http://christiano.me
    Email: anderson@gonow.com.br
    Site: http://www.gonow.com.br
Por que Python?
Por que Python?
 Afinidade com a linguagem...
Por que Python?
  Afinidade com a linguagem...

Facilidade em trabalhar com o modelo do MongoDB...
Por que Python?
  Afinidade com a linguagem...

Facilidade em trabalhar com o modelo do MongoDB...


 Vários módulos e ORMs prontos...
Como trabalhar com MongoDB e Python
Como trabalhar com MongoDB e Python
   PyMongo é o módulo para Python e MongoDB;
Como trabalhar com MongoDB e Python
   PyMongo é o módulo para Python e MongoDB;



            $ easy_install pymongo
Exemplo de uso
Exemplo de uso



>>> from pymongo import Connection
>>> con = Connection(‘localhost’)
>>> db = con[‘blog’]
Inserindo um registro

>>> post = {‘title’:‘Meu Primeiro Post’,
... ‘author’:‘Christiano Anderson’,
... ‘content’: ‘Esse eh um exemplo de conteudo’,
... ‘tags’: [‘mongodb’,‘paraiba’,‘evento’,‘ensol’]}

>>> post = db[‘posts’]
>>> post.insert(post)
ObjectId(‘4cb662f508bf532b1b000000’)
Exemplo - Inserindo novo registro

             #!/usr/bin/env python

             from pymongo import Connection
             import datetime

             con = Connection('localhost', 27017)
             db = con['teste01']

             user = {"nome":"Fulano",
             
    "sobrenome":"de Tal",
             
    "email":"fulano@detal.net",
             
    "data_inclusao": datetime.datetime.now()}

             # Insere
             users = db.users
             users.insert(user)
Exemplo - Consulta

              #!/usr/bin/env python

              from pymongo import Connection

              con = Connection('localhost', 27017)
              db = con['teste01']

              # Pesquisa um só
              users = db.users
              a = users.find_one({"email":"fulano@detal.net"})
              print a

              # Pesquisa varios
              for u in users.find():
                 print u['nome'], u['email']
Outras consultas


    >>> p = db.posts.find_one({‘tags’:‘naboo’})

    >>> p = db.users.find({‘age’:{‘$gte’:18}})
Outras consultas


    >>> p = db.posts.find_one({‘tags’:‘naboo’})

    >>> p = db.users.find({‘age’:{‘$gte’:18}})
Outras consultas


    >>> p = db.posts.find_one({‘tags’:‘naboo’})

    >>> p = db.users.find({‘age’:{‘$gte’:18}})


       É possível usar operadores como $lt,
       $lte, $gt, $gte e outros
MongoEngine


     - ORM para MongoDB
     - Sintaxe bem semelhante ao ORM do Django
     - Baixa curva de aprendizado
     - Estável
MongoEngine


     - ORM para MongoDB
     - Sintaxe bem semelhante ao ORM do Django
     - Baixa curva de aprendizado
     - Estável

              $ easy_install mongoengine
MongoEngine


     - ORM para MongoDB
     - Sintaxe bem semelhante ao ORM do Django
     - Baixa curva de aprendizado
     - Estável

              $ easy_install mongoengine
MongoEngine


     - ORM para MongoDB
     - Sintaxe bem semelhante ao ORM do Django
     - Baixa curva de aprendizado
     - Estável

              $ easy_install mongoengine


          http://www.mongoengine.org
Exemplo MongoEngine
   from mongoengine import *

   class Usuario(Document):
       nome = StringField(required=True)
       email = StringField()
Exemplo MongoEngine
   from mongoengine import *

   class Usuario(Document):
       nome = StringField(required=True)
       email = StringField()



   u = Usuario()
   u.nome = “Christiano”
   u.email = “anderson@gonow.com.br”
   u.save()
Exemplo MongoEngine
   from mongoengine import *

   class Usuario(Document):
       nome = StringField(required=True)
       email = StringField()



   u = Usuario()
   u.nome = “Christiano”
   u.email = “anderson@gonow.com.br”
   u.save()
Exemplo MongoEngine
   from mongoengine import *

   class Usuario(Document):
       nome = StringField(required=True)
       email = StringField()



   u = Usuario()
   u.nome = “Christiano”
   u.email = “anderson@gonow.com.br”
   u.save()        Salvou no banco
Consulta MongoEngine




               for u in User.objects:
                   print u.nome, u.email
MongoDB e Django



          É possível, mas ainda não tem uma
                   solução “oficial”
MongoDB e Django

    Pontos mais críticos na integração com Django:
    - Autenticação;
    - Sessões;
    - Admin;
    - Outras questões amarradas ao ORM...
Django-MongoDB

                Pacote depende do
           django-nonrel e djangotoolbox


                 Mais informações:

            http://django-mongodb.org/
Django-MongoDB - Como instalar


                      Django-nonrel
       hg clone http://bitbucket.org/wkornewald/django-nonrel
       cd django-nonrel && python setup.py install



                        Djangotoolbox
       hg clone http://bitbucket.org/wkornewald/djangotoolbox
       cd djangotoolbox && python setup.py install




                 Django-mongodb-engine
       git clone https://github.com/django-mongodb-engine/mongodb-engine
       cd mongodb-engine && python setup.py install
settings.py


 DATABASES = {
    'default' : {
       'ENGINE' : 'django_mongodb_engine',
       'NAME' : 'my_database'
    }
 }


              Agora é só desenvolver sua
                  app no Django :-)
Django-MongoDB - recursos interessantes


        É possível utilizar GridFS, MapReduce,
            cache, agregadores e demais
            funcionalidadesdo MongoDB


       Mais informações:
       http://django-mongodb.org/topics/index.html
Obrigado! :-)


                Christiano Anderson

                anderson@gonow.com.br

                Twitter: @dump

                Blog: http://christiano.me

Weitere ähnliche Inhalte

Was ist angesagt?

Mini-Curso de MongoDB
Mini-Curso de MongoDBMini-Curso de MongoDB
Mini-Curso de MongoDBBrunno Gomes
 
MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014Christiano Anderson
 
Curso mongo db com php
Curso mongo db com phpCurso mongo db com php
Curso mongo db com phpSuissa
 
Modelando aplicação em documento - MongoDB
Modelando aplicação em documento - MongoDBModelando aplicação em documento - MongoDB
Modelando aplicação em documento - MongoDBThiago Avelino
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBAri Stopassola Junior
 
Minicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTIMinicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTIBruna Pereira
 
Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDBElaine Naomi
 
MongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saberMongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saberChristiano Anderson
 

Was ist angesagt? (11)

Mini-Curso de MongoDB
Mini-Curso de MongoDBMini-Curso de MongoDB
Mini-Curso de MongoDB
 
MongoDB na Campus Party
MongoDB na Campus PartyMongoDB na Campus Party
MongoDB na Campus Party
 
MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014
 
Curso mongo db com php
Curso mongo db com phpCurso mongo db com php
Curso mongo db com php
 
Modelando aplicação em documento - MongoDB
Modelando aplicação em documento - MongoDBModelando aplicação em documento - MongoDB
Modelando aplicação em documento - MongoDB
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDB
 
Minicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTIMinicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTI
 
NoSQL e MongoDB
NoSQL e MongoDBNoSQL e MongoDB
NoSQL e MongoDB
 
Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDB
 
MongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saberMongoDB - Tudo o que você precisa saber
MongoDB - Tudo o que você precisa saber
 
#1 Introdução ao MongoDB
#1   Introdução ao MongoDB#1   Introdução ao MongoDB
#1 Introdução ao MongoDB
 

Andere mochten auch

Coletando dados do Twitter via Application Programming Interface (API)
Coletando dados do Twitter via Application Programming Interface (API)Coletando dados do Twitter via Application Programming Interface (API)
Coletando dados do Twitter via Application Programming Interface (API)Fernando de Assis Rodrigues
 
Henny Chen_Flipping your classroom @ CLEF
Henny Chen_Flipping your classroom @ CLEFHenny Chen_Flipping your classroom @ CLEF
Henny Chen_Flipping your classroom @ CLEFHenny Chen
 
lunchsessie gemeente Enschede over Slimmer Werken
lunchsessie gemeente Enschede over Slimmer Werkenlunchsessie gemeente Enschede over Slimmer Werken
lunchsessie gemeente Enschede over Slimmer WerkenProven Partners
 
Examples pp documentation
Examples pp documentationExamples pp documentation
Examples pp documentationlindahauck
 
Arron and Marci
Arron and MarciArron and Marci
Arron and MarciSteve J
 
Zorg nieuwe stijl sturing van professionaliteit door de jaren heen
Zorg nieuwe stijl  sturing van professionaliteit door de jaren heenZorg nieuwe stijl  sturing van professionaliteit door de jaren heen
Zorg nieuwe stijl sturing van professionaliteit door de jaren heenProven Partners
 
Learning Your Aleph Beth
Learning Your Aleph BethLearning Your Aleph Beth
Learning Your Aleph BethNLBC
 
Great Game of Chilling
Great Game of ChillingGreat Game of Chilling
Great Game of Chillingmjacobson
 
Το πετρέλαιο ως πρώτη ύλη ΣΤ ΦΕ6
Το πετρέλαιο ως πρώτη ύλη ΣΤ ΦΕ6Το πετρέλαιο ως πρώτη ύλη ΣΤ ΦΕ6
Το πετρέλαιο ως πρώτη ύλη ΣΤ ΦΕ6Giorgos Papanikolaou
 
Calypso Social Media Tasks: "How To"
Calypso Social Media Tasks: "How To"Calypso Social Media Tasks: "How To"
Calypso Social Media Tasks: "How To"Six Degrees
 
Michał Laskowski - internetowy business w 6 miesięcy
Michał Laskowski - internetowy business w 6 miesięcyMichał Laskowski - internetowy business w 6 miesięcy
Michał Laskowski - internetowy business w 6 miesięcyguest4d4d00
 

Andere mochten auch (20)

Coletando dados do Twitter via Application Programming Interface (API)
Coletando dados do Twitter via Application Programming Interface (API)Coletando dados do Twitter via Application Programming Interface (API)
Coletando dados do Twitter via Application Programming Interface (API)
 
Henny Chen_Flipping your classroom @ CLEF
Henny Chen_Flipping your classroom @ CLEFHenny Chen_Flipping your classroom @ CLEF
Henny Chen_Flipping your classroom @ CLEF
 
EWBC Vinix
EWBC VinixEWBC Vinix
EWBC Vinix
 
lunchsessie gemeente Enschede over Slimmer Werken
lunchsessie gemeente Enschede over Slimmer Werkenlunchsessie gemeente Enschede over Slimmer Werken
lunchsessie gemeente Enschede over Slimmer Werken
 
Sos gioco
Sos giocoSos gioco
Sos gioco
 
Examples pp documentation
Examples pp documentationExamples pp documentation
Examples pp documentation
 
Periodic Trends
Periodic  TrendsPeriodic  Trends
Periodic Trends
 
Arron and Marci
Arron and MarciArron and Marci
Arron and Marci
 
Zorg nieuwe stijl sturing van professionaliteit door de jaren heen
Zorg nieuwe stijl  sturing van professionaliteit door de jaren heenZorg nieuwe stijl  sturing van professionaliteit door de jaren heen
Zorg nieuwe stijl sturing van professionaliteit door de jaren heen
 
Gioco censis servizi
Gioco   censis serviziGioco   censis servizi
Gioco censis servizi
 
Learning Your Aleph Beth
Learning Your Aleph BethLearning Your Aleph Beth
Learning Your Aleph Beth
 
Great Game of Chilling
Great Game of ChillingGreat Game of Chilling
Great Game of Chilling
 
Το πετρέλαιο ως πρώτη ύλη ΣΤ ΦΕ6
Το πετρέλαιο ως πρώτη ύλη ΣΤ ΦΕ6Το πετρέλαιο ως πρώτη ύλη ΣΤ ΦΕ6
Το πετρέλαιο ως πρώτη ύλη ΣΤ ΦΕ6
 
SHADE
SHADESHADE
SHADE
 
Portfolio
PortfolioPortfolio
Portfolio
 
Calypso Social Media Tasks: "How To"
Calypso Social Media Tasks: "How To"Calypso Social Media Tasks: "How To"
Calypso Social Media Tasks: "How To"
 
Michał Laskowski - internetowy business w 6 miesięcy
Michał Laskowski - internetowy business w 6 miesięcyMichał Laskowski - internetowy business w 6 miesięcy
Michał Laskowski - internetowy business w 6 miesięcy
 
Mag associati
Mag associatiMag associati
Mag associati
 
Presentation eeep comiclab
Presentation eeep comiclabPresentation eeep comiclab
Presentation eeep comiclab
 
Sarakosti griechisch fasten
Sarakosti griechisch fastenSarakosti griechisch fasten
Sarakosti griechisch fasten
 

Ähnlich wie Python MongoDB no MongoSP

MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16Christiano Anderson
 
MongoDB Schema Design - Latinoware 2014
MongoDB Schema Design - Latinoware 2014MongoDB Schema Design - Latinoware 2014
MongoDB Schema Design - Latinoware 2014Christiano Anderson
 
O Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com PythonO Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com PythonMarinho Brandão
 
Grails parte 1 - introdução
Grails   parte 1 - introduçãoGrails   parte 1 - introdução
Grails parte 1 - introduçãoJosino Rodrigues
 
Utilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primárioUtilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primárioCarlos Melo
 
Mini curso de django
Mini curso de djangoMini curso de django
Mini curso de djangorosenclever
 
Django Tem Ritmo
Django Tem RitmoDjango Tem Ritmo
Django Tem Ritmoitalomaia
 
Novidades do Django 1.2 e o que vem por ai
Novidades do Django 1.2 e o que vem por aiNovidades do Django 1.2 e o que vem por ai
Novidades do Django 1.2 e o que vem por aiMarcos Petry
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosRodrigo Nossal
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoFreedom DayMS
 
Python e Django
Python e DjangoPython e Django
Python e Djangopugpe
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmGuilherme Blanco
 
De Zero à Web com Python e Django
De Zero à Web com Python e DjangoDe Zero à Web com Python e Django
De Zero à Web com Python e DjangoOsvaldo Santana Neto
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Webantonio sérgio nogueira
 

Ähnlich wie Python MongoDB no MongoSP (20)

Python e MongoDB - Ensol
Python e MongoDB - EnsolPython e MongoDB - Ensol
Python e MongoDB - Ensol
 
MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16
 
Python 06
Python 06Python 06
Python 06
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
 
Meetup MUG-RS KingHost
Meetup MUG-RS KingHostMeetup MUG-RS KingHost
Meetup MUG-RS KingHost
 
Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 
Workshop Django
Workshop DjangoWorkshop Django
Workshop Django
 
MongoDB Schema Design - Latinoware 2014
MongoDB Schema Design - Latinoware 2014MongoDB Schema Design - Latinoware 2014
MongoDB Schema Design - Latinoware 2014
 
O Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com PythonO Prazer De Trabalhar Com Python
O Prazer De Trabalhar Com Python
 
Grails parte 1 - introdução
Grails   parte 1 - introduçãoGrails   parte 1 - introdução
Grails parte 1 - introdução
 
Utilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primárioUtilizando o samba como servidor de domínio primário
Utilizando o samba como servidor de domínio primário
 
Mini curso de django
Mini curso de djangoMini curso de django
Mini curso de django
 
Django Tem Ritmo
Django Tem RitmoDjango Tem Ritmo
Django Tem Ritmo
 
Novidades do Django 1.2 e o que vem por ai
Novidades do Django 1.2 e o que vem por aiNovidades do Django 1.2 e o que vem por ai
Novidades do Django 1.2 e o que vem por ai
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutos
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com Django
 
Python e Django
Python e DjangoPython e Django
Python e Django
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 
De Zero à Web com Python e Django
De Zero à Web com Python e DjangoDe Zero à Web com Python e Django
De Zero à Web com Python e Django
 
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação WebDjango Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
Django Módulo Básico Parte I - Desenvolvimento de uma aplicação Web
 

Mehr von Christiano Anderson

Mapeando a Terra com soluções livres e GeoDjango
Mapeando a Terra com soluções livres e GeoDjangoMapeando a Terra com soluções livres e GeoDjango
Mapeando a Terra com soluções livres e GeoDjangoChristiano Anderson
 
Grafos - Uma abordagem divertida - Latinoware 2014
Grafos - Uma abordagem divertida - Latinoware 2014Grafos - Uma abordagem divertida - Latinoware 2014
Grafos - Uma abordagem divertida - Latinoware 2014Christiano Anderson
 
Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Christiano Anderson
 
Geo Django - Fórum Goiano de Software Livre - 10 FGSL e 1 ERI
Geo Django - Fórum Goiano de Software Livre - 10 FGSL e 1 ERIGeo Django - Fórum Goiano de Software Livre - 10 FGSL e 1 ERI
Geo Django - Fórum Goiano de Software Livre - 10 FGSL e 1 ERIChristiano Anderson
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesChristiano Anderson
 

Mehr von Christiano Anderson (13)

certificadoTDC2016Floripa
certificadoTDC2016FloripacertificadoTDC2016Floripa
certificadoTDC2016Floripa
 
Mapeando a Terra com soluções livres e GeoDjango
Mapeando a Terra com soluções livres e GeoDjangoMapeando a Terra com soluções livres e GeoDjango
Mapeando a Terra com soluções livres e GeoDjango
 
Grafos - Uma abordagem divertida - Latinoware 2014
Grafos - Uma abordagem divertida - Latinoware 2014Grafos - Uma abordagem divertida - Latinoware 2014
Grafos - Uma abordagem divertida - Latinoware 2014
 
Big Data Latinoware 2014
Big Data Latinoware 2014Big Data Latinoware 2014
Big Data Latinoware 2014
 
Big Data - Conceitos Básicos
Big Data - Conceitos BásicosBig Data - Conceitos Básicos
Big Data - Conceitos Básicos
 
Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15
 
Geo Django - Fórum Goiano de Software Livre - 10 FGSL e 1 ERI
Geo Django - Fórum Goiano de Software Livre - 10 FGSL e 1 ERIGeo Django - Fórum Goiano de Software Livre - 10 FGSL e 1 ERI
Geo Django - Fórum Goiano de Software Livre - 10 FGSL e 1 ERI
 
Django - Muito além do básico
Django - Muito além do básicoDjango - Muito além do básico
Django - Muito além do básico
 
GeoDjango
GeoDjangoGeoDjango
GeoDjango
 
Palestra nosql
Palestra nosqlPalestra nosql
Palestra nosql
 
Scrum
ScrumScrum
Scrum
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 
Python and MongoDB
Python and MongoDBPython and MongoDB
Python and MongoDB
 

Python MongoDB no MongoSP

  • 1. Python e MongoDB Christiano Anderson Twitter: @dump Blog: http://christiano.me Email: anderson@gonow.com.br Site: http://www.gonow.com.br
  • 3. Por que Python? Afinidade com a linguagem...
  • 4. Por que Python? Afinidade com a linguagem... Facilidade em trabalhar com o modelo do MongoDB...
  • 5. Por que Python? Afinidade com a linguagem... Facilidade em trabalhar com o modelo do MongoDB... Vários módulos e ORMs prontos...
  • 6. Como trabalhar com MongoDB e Python
  • 7. Como trabalhar com MongoDB e Python PyMongo é o módulo para Python e MongoDB;
  • 8. Como trabalhar com MongoDB e Python PyMongo é o módulo para Python e MongoDB; $ easy_install pymongo
  • 10. Exemplo de uso >>> from pymongo import Connection >>> con = Connection(‘localhost’) >>> db = con[‘blog’]
  • 11. Inserindo um registro >>> post = {‘title’:‘Meu Primeiro Post’, ... ‘author’:‘Christiano Anderson’, ... ‘content’: ‘Esse eh um exemplo de conteudo’, ... ‘tags’: [‘mongodb’,‘paraiba’,‘evento’,‘ensol’]} >>> post = db[‘posts’] >>> post.insert(post) ObjectId(‘4cb662f508bf532b1b000000’)
  • 12. Exemplo - Inserindo novo registro #!/usr/bin/env python from pymongo import Connection import datetime con = Connection('localhost', 27017) db = con['teste01'] user = {"nome":"Fulano", "sobrenome":"de Tal", "email":"fulano@detal.net", "data_inclusao": datetime.datetime.now()} # Insere users = db.users users.insert(user)
  • 13. Exemplo - Consulta #!/usr/bin/env python from pymongo import Connection con = Connection('localhost', 27017) db = con['teste01'] # Pesquisa um só users = db.users a = users.find_one({"email":"fulano@detal.net"}) print a # Pesquisa varios for u in users.find(): print u['nome'], u['email']
  • 14. Outras consultas >>> p = db.posts.find_one({‘tags’:‘naboo’}) >>> p = db.users.find({‘age’:{‘$gte’:18}})
  • 15. Outras consultas >>> p = db.posts.find_one({‘tags’:‘naboo’}) >>> p = db.users.find({‘age’:{‘$gte’:18}})
  • 16. Outras consultas >>> p = db.posts.find_one({‘tags’:‘naboo’}) >>> p = db.users.find({‘age’:{‘$gte’:18}}) É possível usar operadores como $lt, $lte, $gt, $gte e outros
  • 17. MongoEngine - ORM para MongoDB - Sintaxe bem semelhante ao ORM do Django - Baixa curva de aprendizado - Estável
  • 18. MongoEngine - ORM para MongoDB - Sintaxe bem semelhante ao ORM do Django - Baixa curva de aprendizado - Estável $ easy_install mongoengine
  • 19. MongoEngine - ORM para MongoDB - Sintaxe bem semelhante ao ORM do Django - Baixa curva de aprendizado - Estável $ easy_install mongoengine
  • 20. MongoEngine - ORM para MongoDB - Sintaxe bem semelhante ao ORM do Django - Baixa curva de aprendizado - Estável $ easy_install mongoengine http://www.mongoengine.org
  • 21. Exemplo MongoEngine from mongoengine import * class Usuario(Document): nome = StringField(required=True) email = StringField()
  • 22. Exemplo MongoEngine from mongoengine import * class Usuario(Document): nome = StringField(required=True) email = StringField() u = Usuario() u.nome = “Christiano” u.email = “anderson@gonow.com.br” u.save()
  • 23. Exemplo MongoEngine from mongoengine import * class Usuario(Document): nome = StringField(required=True) email = StringField() u = Usuario() u.nome = “Christiano” u.email = “anderson@gonow.com.br” u.save()
  • 24. Exemplo MongoEngine from mongoengine import * class Usuario(Document): nome = StringField(required=True) email = StringField() u = Usuario() u.nome = “Christiano” u.email = “anderson@gonow.com.br” u.save() Salvou no banco
  • 25. Consulta MongoEngine for u in User.objects: print u.nome, u.email
  • 26. MongoDB e Django É possível, mas ainda não tem uma solução “oficial”
  • 27. MongoDB e Django Pontos mais críticos na integração com Django: - Autenticação; - Sessões; - Admin; - Outras questões amarradas ao ORM...
  • 28. Django-MongoDB Pacote depende do django-nonrel e djangotoolbox Mais informações: http://django-mongodb.org/
  • 29. Django-MongoDB - Como instalar Django-nonrel hg clone http://bitbucket.org/wkornewald/django-nonrel cd django-nonrel && python setup.py install Djangotoolbox hg clone http://bitbucket.org/wkornewald/djangotoolbox cd djangotoolbox && python setup.py install Django-mongodb-engine git clone https://github.com/django-mongodb-engine/mongodb-engine cd mongodb-engine && python setup.py install
  • 30. settings.py DATABASES = { 'default' : { 'ENGINE' : 'django_mongodb_engine', 'NAME' : 'my_database' } } Agora é só desenvolver sua app no Django :-)
  • 31. Django-MongoDB - recursos interessantes É possível utilizar GridFS, MapReduce, cache, agregadores e demais funcionalidadesdo MongoDB Mais informações: http://django-mongodb.org/topics/index.html
  • 32. Obrigado! :-) Christiano Anderson anderson@gonow.com.br Twitter: @dump Blog: http://christiano.me

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n