Como criar um pipeline de agregação no MongoDB Atlas
Avalie esse Vídeo
00:00:00Introdução ao Construtor de Aggregation Pipeline
00:01:14Explorando a coleção de filmes
00:01:59Construindo o Pipeline de Agregação: Estágio de Correspondência Inicial
00:04:00Arrays de unwind com o operador Unwind
00:07:11Restringindo os resultados com um segundo estágio de correspondência
00:09:15Agrupando documentos e somando o tempo de execução
00:11:17Projetando resultados e omitindo campos desnecessários
00:12:00Revise os estágios do pipeline de agregação
00:14:03Conclusão e Incentivo ao Envolvimento com o Conteúdo
O tema principal do vídeo é aprender a usar o aggregation pipeline Builder do MongoDB Atlas para criar queries complexas e manipular conjuntos de dados de forma eficaz.
} Pontos-chave
- O vídeo demonstra o uso do aggregation pipeline Builder do MongoDB Atlas.
- Ele mostra como construir um pipeline de agregação com vários estágios, incluindo correspondência, desenrolamento, grupo e projeto.
- O exemplo usado envolve a filtragem de documentos de filmes por membro do elenco, especificamente Ryan Reynolds, e o cálculo do tempo total de tela.
- O Construtor de pipeline de agregação fornece uma ferramenta gráfica para criar, testar e visualizar os estágios do seu pipeline.
Links relacionados
Transcrição completa do vídeo
Oi, pessoal, meu nome é null e, neste vídeo, mostraremos o que você pode fazer com o Construtor de aggregation pipeline que pode ser acessado diretamente do MongoDB Atlas e um pouco da minha tela que você notará que Atlas usando um cluster disponível neste exemplo que não importa muito. Go em frente e clique em procurar coleções e terei um alguns bancos de dados e coleções eles são todos do conjunto de dados de amostra que eu Go em frente e clique em Amostra de inflix como o que eu usarei para este exemplo e eu Go em frente e clique em filmes então, para lhe dar uma ideia de como são esses filmes, temos informações, como título da trama, tempo de execução do elenco Etc, tudo o que você esperaria quando se trata de dizer Serviços semelhantes do Netflix IMDb, então o que vamos fazer neste vídeo é nós vamos estar andando por ai com o Construtor do Aggregation Pipeline, então uma ferramenta gráfica que permite criar e testar seus pipelines de agregação para que você possa ficar mais à vontade quando se trata de executar consultas mais complexas no MongoDB. sobre agregação e isso vai nos levar para o Construtor de pipeline de agregação que você notará é uma experiência quase semelhante à que você teria no MongoDB Compass se já trabalhasse com Manga para ser Compass , então você tem a oportunidade de fazer isso diretamente com um Atlas ou dentro do Compass , depende totalmente de você, então se eu rolar para baixo até o construtor de pipeline de agregação que nos oferecem o Atlas , você notará que eu tenho alguns documentos de exemplo para nos dar uma ideia do que estamos fazendo estar tentando trabalhar com isso é apenas um conjunto de dados de amostra para que você possa ter uma ideia de que tudo está funcionando conforme o esperado então Go em frente e fazer um primeiro estágio deste Builder e vamos fazer nós vamos começar com algo simples e vamos embora ng para trabalhar nosso caminho para algo um pouco mais complicado para lhe dar uma ideia de algumas das coisas que você pode fazer, então a primeira coisa que queremos fazer é querer fazer uma query de correspondência quiser encontrar documentos específicos que atendam meus critérios específicos, então direi correspondência e o que exatamente eu gostaria de corresponder, então se eu rolar por este documento para ver o que exatamente está disponível para Mim. filmes específicos que têm um membro específico do elenco, então um ator, um ator, então o que eu direi é que eu direi elenco e direi vamos nos Atlas Search por Ryan Reynolds e você notará que gera uma visualização com base no que eu tinha para este estágio específico do pipeline e isso é útil porque lhe dá uma ideia de que, bem, um é minha query realmente funcionando, então essa agregação está funcionando nesta parte e está funcionando corretamente então se Eu rolei por alguns desses documentos no conjunto de dados de amostra que eu veria k para conversão, que é uma array, embora eu tenha fornecido apenas um valor de string sólida e, com certeza, temos dados que têm Ryan Reynolds, então você não obterá muito benefício dessa agregação específica em uma operação de busca simples porque uma busca a operação é de fato uma correspondência, então Go rolar e fazer outro estágio nesse pipeline de agregação. trabalhando com uma array nós, o MongoDB tem muitos operadores que permitem que você trabalhe com arrays com sucesso, mas apenas por causa deste exemplo, vamos dizer que você sabe que terminamos com arrays, então eu procuraria o unwind operador para que o operador de desenrolamento achate essa array para nós, então o que vamos fazer para esse desenrolar específico é fornecer o caminho Ignorar os outros operadores opcionais então direi cifrão porque estamos usando o cifrão porque queremos t para fazer referência a um campo específico que existe em nosso documento e não apenas fornecer algum tipo de valor de string , então, ao dizer cifrão, estamos dizendo que estamos referenciando a propriedade de conversão o campo de conversão e agora em vez de uma array nós agora tiver um documento achatado ou um conjunto de documentos que contenham todos os valores nessa array fundida bem então fizemos uma correspondência nós un nós Desenrolamos a array vamos dar um passo além vamos dizer que queremos para fazer outra restrição de nosso conjunto de dados, então inicialmente pesquisamos documentos de Ryan Reynold que reduziram nosso conjunto de dados significativamente nós Desenrole a array Go em frente e faça outra correspondência com base no membro do elenco de Ryan Reynolds para que o ator de Ryan Reynolds, então queremos restringir ainda mais o escopo de nossos resultados, então direi para adicionar um estágio e direi para corresponder a essa correspondência, mais uma vez direi que o elenco será Ryan Reynolds e você notará que mais uma vez, obtemos alguns documentos de amostra de volta é apenas um conjunto de amostras de 10, enquanto poderíamos acabar com muito mais documentos como parte do conjunto de resultados real desse pipeline de agregação, mas se procurarmos elenco, Go que esse elenco é na verdade escopo adicional os resultados de nossa pipeline de agregação, queremos reduzi-lo e digamos que queremos desta vez para dizer que queremos obter o tempo total de tela que Ryan Reynolds tem para todos os filmes que ele já produziu mostras de filmes qualquer existe na coleção do filme, então Go em frente e adicionar outro estágio ao nosso pipeline desta vez, Go em frente e dizer que queremos fazer um grupo, então, neste caso, vamos agrupar nossos documentos com base em determinados critérios e que os critérios incluirão a soma real do tempo de execução desses filmes porque, se eu examinar as amostras que voltamos, temos um campo de tempo de execução, estou presumindo que são minutos, poderia ser outra coisa, mas não é realmente importa para r este exemplo, então Go em frente e faça algumas alterações aqui, precisamos fornecer um ID e alguns campos, então vamos começar com esse ID , o ID é que apenas vamos deixá-lo como um o valor deste ID realmente não importa para este exemplo porque não precisamos especificar nossos documentos reais, nesse caso, nós só nos importamos com o tempo de execução, sabemos que só vamos obter informações sobre esse ator, então vamos fazer algumas mudanças nosso primeiro campo uh, Go em frente e diremos que queremos incluir o membro do elenco como nos resultados e uh, o acumulador que vamos usar é que queremos apenas o primeiro ator de volta, que só deve ser Ryan Reynolds porque nós fez a correspondência após o desenrolar, então Go em frente e faça esse operador Go em frente e digamos primeiro e vamos obter o primeiro membro do elenco retornado, então neste caso será convertido em cifrão e você notará que nos forneceu uma amostra que retornou neste caso, temos um ID que é fi xeramos um e temos um membro do elenco, Ryan Reynolds, que realmente não nos ajuda porque ainda estamos tentando obter o tempo total de execução desses filmes, então Go em frente e adicionar outro campo ao nosso grupo, Go em frente e dizer que desta vez, vamos chamá-lo de uh tempo de tela e, para o tempo de tela, vamos usar outro acumulador, então vamos dizer que desta vez vamos dizer soma e será a soma dos nossos tempo de execução, então vamos dizer tempo de execução do cifrão e isso retornará o tempo de execução total, que estamos assumindo uh talvez 1941 minutos uh ou qualquer que seja o acumulador é a soma dos tempos de execução, o que é ótimo se quisermos obter livre-se desse ID que não é particularmente útil para nós nesse pipeline de agregação específico, podemos dizer que Go em frente e adicionar outro estágio. o construtor de pipeline de agregação é que você pode adicionar vários estágios manipule seus dados como quiser, então, neste caso, o que direi é: eu direi projeto, então eu projetaria dizer o que eu não quiser e o que eu não quiser é não querer o ID incluído, então o que posso dizer é ID 0 então ao dizer ID 0 estamos dizendo omitir o ID e incluir tudo caso contrário, agora que temos nossa amostra, nossa amostra é um único resultado e esse é Ryan Reynolds com um tempo de tela, então você notará que temos alguns estágios nesse aggregation pipeline provavelmente há 100 maneiras diferentes de fazer o mesmo pipeline ou esse pipeline pode não ser realmente útil para você, mas temos uma correspondência seguida por um desenrolar seguido por uma correspondência seguida por um grupo seguido por um projeto e em cada estágio desse pipeline temos algumas amostras ao longo do caminho que o ajudará quando se trata de trabalhar com seus dados então se você quiser este vídeo, dedique um momento para clicar nele botão k e se inscreva no canal do Youtube e vejo você no meu próximo vídeo