mongoengine
Post on 12-Apr-2017
178 Views
Preview:
TRANSCRIPT
Wilson JúniorDesenvolvedor de Software
na globo.com Desenvolvedor Python
desde 2008 Um dos commiters do
MongoEngine
globo.com
Vantagens de usar um MongoDB com ODM
• Estrutura de dados simples leitura e escrita.
• Diminuir a complexidade do modelo de informações.
• Orientação a objetos de forma natural à linguagem.
• Free schema, evolução natural dos dados sem (alter tables), data migrations apenas quando necessário.
• Um Banco de Dados NoSQL não substitui o modelo SQL, possui suas vantagens e desvantagens, na qual cada um merece sua aplicação.
• Mineração dos dados com Map/Reduce
Orientação a Documentos ?
id nomeWilson1Isabella2
table: pessoas
pid telefone6299889911
1
table: pessoas_telefone
623381700
tipoct
2 629145991 t
N1
Podemos melhorar como nossos dados são modelados ?
{ “nome”: “Wilson”, “telefones”: [ {“num”: 6289124, “tipo”: “t”}, {“num”: 1234151, “tipo”: "c"} ]}
{ “nome”: “Isabella”, “telefones”: [ {“num”: 1234151, “tipo”: "c"} ]}
Coleção:de Pessoas
Documento
…
Tipos de camposNome Características Exemplo
StringField Armazena caracteres, textos, de livre marcação “Hello world"
URLField Armazena URLs "http://bit.ly/ItgYlU"
EmailField Armazena emails “nospam@google.com.br
IntField Armazena números inteiros em 32 bits 100
Tipos de camposNome Características Exemplo
LongField Armazena Inteiros Longos 64 bits 1000000000L
FloatField Armazena números com ponto futuante 2.12
DecimalField Armazena números Decimais 2.10'
BooleanField Armazena um valor booleano True ou False
Tipos de camposNome Características Exemplo
DateTimeField
Armazena datas com precisão de tempo
'2010/10/01 18:30'
ComplexDateTimeField
Armazena datas com precisão de milisegundos
YYYY,MM,DD,HH,MM,SS,N
NNNNN '
EmbeddedDocumentField
Armazena um EmbeddedDocument de um tipo
especifico MyEmbeddedDocument
Tipos de camposNome Características Exemplo
SortedListField
Armazena uma listagem de forma ordenada [1, 6]
DictField Armazena um dicionário de dados
{‘oi’: ‘tudo bem ?’}
ReferenceField
Armazena a referencia de um documento (relacionamentos) MyOtherDocu
ment
Tipos de camposNome Características Exemplo
GenericEmbeddedDocumentFiel
dArmazena um
EmbeddedDocument Genérico …
DynamicField Armazena qualquer tipo de dado ..
ListFieldArmazena uma listagem baseada
em um tipo de Field [10, 12]
Tipos de camposNome Características Exemplo
FileField Armazena um arquivo comum …
ImageField Armazena uma Imagem ..
SequenceFieldCampo gerador de números
sequenciais 1
Instalação
$ mkdir meu_projeto$ cd meu_projeto$ mkvirtualenv me $ pip install ipdb$ pip install mongoengine
Facebook: fb.com/wilson.junior3Github: github.com/wpjunior
top related