Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PyMongo - Trabalhando com Python e MongoDB

PyMongo - Trabalhando com Python e MongoDB

Palestra sobre como trabalhar com Python e MongoDB utilizando PyMongo na Python Brasil.

Avatar for Arimatea Neto

Arimatea Neto

August 23, 2018
Tweet

More Decks by Arimatea Neto

Other Decks in Technology

Transcript

  1. Quem sou eu? Arimatea Neto • Olinda • Graduação em

    Ciência da Computação (UFPE) • Especialização em Ciência de Dados e Analytics (UPE) • 6 anos de desenvolvimento com Python e Django • Desenvolvedor Full-Stack na Vinta Software github.com/arineto arineto.github.io
  2. Agenda • Bancos de dados NoSQL ◦ O que significa

    NoSQL? ◦ Por que NoSQL? ◦ Tipos de bancos NoSQL • MongoDB ◦ O que é MongoDB? ◦ O Documento ◦ Conceitos (RDBMS vs MongoDB) ◦ Por que MongoDB? • PyMongo ◦ CRUD + Join • Outras libs
  3. O que significa NoSQL? NoSQL é um termo genérico usado

    para definir uma classe de bancos de dados que fornecem um mecanismo de armazenamento e recuperação de dados que são modelados de formas diferentes das relações tabulares dos bancos de dados relacionais.
  4. Resposta às demandas das aplicações modernas: • Grandes volumes de

    dados • Mudanças constantes na estrutura dos dados • Diversas fontes de dados (Estruturados, Semi-estruturados e não estruturados) • Performance • Escalabilidade Por que NoSQL?
  5. Tipos de bancos NoSQL • Documentos: São projetados para armazenar

    dados semi-estruturados como documentos, geralmente no formato JSON. • Colunares: Otimizados para leitura e escrita de colunas de dados ao invés de linhas; • Chave-Valor: Armazenamento de dados indexados a uma chave, também conhecimento com tabelas hash distribuídas; • Grafos: Armazenamento em formato de grafos, com vértices e arestas direcionadas.
  6. O que é MongoDB? MongoDB é um banco de dados

    NoSQL baseado em documentos (BSON) que foca em flexibilidade, escalabilidade, consultas e indexação.
  7. Por que MongoDB? • Armazenamento de dados flexível • Facilidade

    de integração com aplicações • Consultas calculadas em tempo de execução, indexação e agregação em tempo real • Banco de dados distribuído • Grátis e Open Source
  8. Create • document: Documento ou lista de documentos a ser

    inserido • writeConcern (opcional): Documento descrevendo as regras de escrita • ordered (opcional): Booleano indicando se a inserção deve ser ordenada
  9. Update • query: Filtro para definir documentos a serem atualizados

    • upsert: Cria um novo documento se nenhum foi encontrado • multi: se True atualiza todos os documentos encontrados, se não apenas o primeiro
  10. Join (Lookup) • from: especifica a coleção do mesmo banco

    para o Join • localField: especifica o campo da coleção local • foreignField: especifica o campo na coleção estrangeira MongoDB blog post about join and lookup