Banco de Dados - MongoDB – Parte 2
Introdução ao MongoDB
Apresentação do Professor Eduardo Santarem
- O professor Eduardo Santarem inicia a aula, que é a última da disciplina de Banco de Dados, focando no MongoDB.
Estrutura dos Documentos no MongoDB
- O MongoDB utiliza documentos como seu objeto padrão, permitindo diversos tipos de dados, incluindo listas (arrays) e numéricos. Cada documento pode representar informações sobre filmes.
Consultas no MongoDB
Diferenças em Relação aos Bancos Relacionais
- A consulta de dados no MongoDB difere significativamente dos bancos de dados relacionais tradicionais. Utiliza-se a ferramenta "Filter" na opção "Find" para realizar consultas nos documentos.
Exemplo Prático com Coleção de Filmes
- O professor demonstra uma consulta na coleção "sample_mflixmovies", que contém 25.530 documentos, filtrando por um campo específico chamado "runtime". Ele busca filmes com duração de 33 minutos e obtém dois resultados.
Filtragem Avançada
Consultas por Campos Diversos
- É possível realizar consultas utilizando outros campos como "language", mesmo sendo do tipo array, retornando resultados variados conforme os critérios estabelecidos pelo usuário.
Uso do Operador IN
- O professor explica o uso do operador "IN" para buscar múltiplos valores em uma lista, exemplificando com idiomas como árabe e russo para filtrar os resultados desejados.
Aggregation Framework
Conceito de Pipeline
- Uma das funcionalidades mais importantes do MongoDB é o "Aggregation Framework", que permite realizar consultas complexas através do conceito de pipeline, onde as operações são sequenciais e cada etapa recebe o resultado da anterior como entrada.
Funcionamento do Pipeline
- O pipeline funciona como uma esteira industrial: os documentos entram em uma coleção e passam por várias etapas até chegar ao resultado final esperado; isso pode incluir repetições de etapas conforme necessário.
Possibilidades no Aggregation Framework
Variedade nas Operações
- Há muitas operações disponíveis na documentação do MongoDB que podem ser utilizadas dentro do framework de agregação; o professor incentiva os alunos a explorarem essas opções mais profundamente em futuras disciplinas sobre o tema.
Ferramenta Atlas para Construção de Pipelines
Entendendo o Pipeline no MongoDB
O que é um Pipeline?
- O "pipeline" no MongoDB é uma sequência de estágios que processam dados, permitindo operações como filtragem e agrupamento.
- Um dos primeiros estágios é o "match", que aplica filtros em conjuntos de documentos. Por exemplo, filtrar filmes com Brad Pitt no elenco e disponíveis em espanhol resulta em cinco documentos.
Operadores do MongoDB
Estágio Match
- O operador "match" reduz um conjunto inicial de 23 mil documentos para cinco, mantendo apenas aqueles que atendem aos critérios especificados.
Estágio Group
- O estágio "group" permite a transformação da estrutura dos documentos, possibilitando operações de agregação como soma, média e contagem.
- Ao agrupar por idiomas, o sistema cria novos campos para somar minutos e contar quantos filmes existem por idioma.
Exemplos Práticos de Agrupamento
Resultados do Estágio Group
- Após aplicar o estágio "group", os resultados mostram a quantidade total de filmes agrupados por idioma e a soma dos minutos correspondentes.
- Os grupos são organizados conforme os idiomas presentes nos filmes, demonstrando como os dados podem ser reestruturados.
Visualizando o Pipeline Completo
Estrutura do Pipeline
- A visualização do pipeline mostra a transformação dos dados desde o início até as etapas finais. Começa com todos os documentos e termina com um conjunto reduzido após várias operações.
Adicionando Estágios ao Pipeline
- É possível adicionar múltiplos estágios ao pipeline para refinar ainda mais os resultados. Cada novo estágio pode modificar a saída anterior.
Exemplo Adicional: Consultas com Idiomas Específicos
Filtrando Documentos em Russo
- Um exemplo adicional envolve filtrar todos os filmes disponíveis em russo. Após aplicar um grupo por ano, obtém-se informações sobre a média de tempo dos filmes por ano.
Organizando Resultados
- Após agrupar os dados, um estágio "sort" organiza os resultados pelo ano de lançamento dos filmes.
Exportação de Código
Exportando Dados para Linguagens Diferentes
Como Criar um Pipeline no MongoDB?
Conexão e Criação de Comandos
- O apresentador explica como é possível exportar dados e criar comandos em Python para conectar ao banco de dados MongoDB.
- Ele menciona que o processo pode ser realizado em outras linguagens além do Python, destacando a flexibilidade das ferramentas disponíveis.
- A importância da integração com o MongoDB é ressaltada, facilitando operações com o banco de dados.
Aplicação de Estágios no Pipeline
- O apresentador inicia com 23 mil documentos e aplica estágios utilizando operadores como "LIMIT", "PROJECT" e "OUT".
- A projeção é explicada como uma forma de gerar uma nova base de dados, reduzindo os documentos iniciais para apenas 20.
- Uma nova coleção chamada "FILMES" é criada através da aplicação dos estágios mencionados anteriormente.
Manipulação de Dados
- O apresentador demonstra a criação de um campo "TITLE", separando palavras em um array usando o operador "SPLIT".
- Ele discute a possibilidade de renomear campos e excluir documentos durante o processo, mostrando a versatilidade na manipulação dos dados.
- A geração do estágio "OUT" resulta na criação da coleção "MEUS FILMES", evidenciando a funcionalidade do pipeline.
Paradigmas dos Bancos NoSQL
- O apresentador destaca que bancos NoSQL, como o MongoDB, possuem paradigmas diferentes dos bancos tradicionais.
- É enfatizado que cada tipo de banco tem características específicas que requerem estudo aprofundado para compreensão adequada.
Importância do Aprendizado Contínuo
- O apresentador incentiva os alunos a manterem a mente aberta para aprender sobre as diversas formas de operar com diferentes bancos de dados.