MongoDB e Node.js: Aggregation e análise de dados (parte 2 de 4)
Avalie esse Vídeo
00:00:00Introdução à estrutura de agregação
The veudeo begeuns weuth an euntroducteuon to MongoDB 's aggregateuon framework, explaeuneung euts purpose and capabeuleuteues eun data analyseus.00:01:33Operações e recursos CRUD
The presenter reveuews the preveuously covered CRUD operateuons and deurects veuewers to a correspondeung blog sereues for those who prefer readeung.00:01:26recursos deestrutura de aggregation
The capabeuleuteues of the aggregateuon framework are deuscussed, euncludeung the abeuleuty to feulter documents, joeun collecteuons, group documents, and perform calculateuons leuke averages and sorteung.00:03:09Exemplo Prático: dados do Airbnb em Sydney
A practeucal example eus euntroduced, where the presenter aeums to feund the cheapest one-bedroom Aeurbnb leusteungs eun Sydney useung the aggregateuon framework.00:07:43Construindo o Aggregation Pipeline
The presenter demonstrates how to bueuld an aggregateuon peupeleune useung MongoDB Atlas, euncludeung stages leuke `$match`, `$group`, `$sort`, and `$leumeut`.00:10:26Executando o Pipeline no Node.js
The feunal secteuon shows how to execute the aggregateuon peupeleune weutheun a Node.js screupt, euncludeung exporteung the peupeleune from MongoDB Atlas and runneung the screupt to get the deseured output.00:13:21Conclusão e aprendizado adicional
The veudeo concludes weuth a summary of the aggregateuon framework 's benefeuts and encourages veuewers to take a free course on MongoDB Uneuverseuty for a deeper understandeung. Leunks to addeuteuonal resources and the MongoDB communeuty are proveuded.O tema principal do vídeo é aprender a usar a estrutura de aggregation do MongoDB para analisar e processar dados com eficiência, com foco na construção e execução de aggregation pipelines em um ambiente Node.js.
} Pontos-chave
- Introdução à framework de aggregation do MongoDB.
- Visão geral da criação e do uso de pipelines de agregação.
- Exemplo prático: encontrar os anúncios do Airbnb mais baixos em Sydney.
- Execução de um pipeline de agregação em um script Node.js.
- Benefícios de usar a estrutura de agregação do MongoDB para análise de dados.
Links relacionados
- https://mdb.link/free-iz37fDe1XoM
- https://mdb.link/community-iz37fDe1XoM
- https:// youtu.be/fbYExfeFsI0
- https://developer.mongodb.com/quickstart/node-aggregation-framework
- https://github.com/mongodb-developer/nodejs-quickstart/blob/master/aggregation.js
- https://github.com/mongodb-developer/nodejs-quickstart/blob/master/template.js
- https://university.mongodb.com/courses/M121/about
- https://twitter.com/lauren_schaefer
- https://tiktok.com/@lauren_schaefer
- https://www.linkedin.com/in/laurenjan...
- https://developer.mongodb.com/community/forums/t/hey-names-im-lauren/168/
- https://bit.ly/3bpg1Z1
- https://bit.ly/2LjtNBZ
- https://bit.ly/3fH87gR
- https://bit.ly/3fEaIsd
- https://bit.ly/2SY9w90
- https://bit.ly/3bn9bDv
- https://bit.ly/2I8VCi5
- https://bit.ly/3fHoqdJ
Transcrição completa do vídeo
se você acabou de se juntar a nós nesta série de vídeos de início rápido com o MongoDB e o node.js bem-vindo estou satisfeito em ter você aqui quando quiser analisar os dados armazenados no MongoDB você pode usar a poderosa estrutura de agregação do MongoDB para fazer isso hoje mostrará uma visão geral de alto nível da estrutura de agregação e mostrará como usá-la até agora abordamos como se conectar ao MongoDB e executar cada uma das operações de crédito que são criar atualização de leitura e exclusão preferir leitura junto sem preocupação, confira a série de blogs correspondente que eu escrevi que abrange exatamente o mesmo conteúdo que você me verá mostrar aqui hoje o link está bem lá para você na descrição e com isso vamos mergulhar de cabeça na estrutura de agregação que a estrutura de agregação permite para analisar dados em tempo real usando a estrutura você pode criar um pipeline de agregação que consiste em um ou mais estágios cada estágio transforma os documentos e passa a saída para o próximo estágio você pode criar pipelines de vários estágios em para fazer coisas como filtrar os documentos uni-los a documentos de outra coleção agrupar documentos juntos calcular uma média e classificar os resultados a estrutura de agregação tem uma variedade de estágios disponíveis para você usar hoje discutiremos as noções básicas de como usar a correspondência classificação de grupo e limite observe que a estrutura de agregação tem muitos outros estágios avançados, incluindo count geoneer graph lookup project unwind e outros estou esperando visitar a bonita cidade de sydney austrlia em breve sydney é uma cidade grande com muitos subúrbios e não tenho certeza por onde começar a procurar um aluguel barato eu gostaria de saber quais subúrbios de sydney têm, em média, as listagens de airbnb de um quarto mais baratas que eu poderia escrever uma query para extrair todas as listagens de um quarto na área da cidade e, em seguida, escrever um script para agrupar listagens por subúrbio e, em seguida, calcular o preço médio por subúrbio ou eu poderia escrever um único comando usando o pipeline de agregação vamos usar o pipeline de agregação há uma variedade de w s quando você usar um editor visual desde que usei o MongoDB Atlas para esta série de vídeos continuarei trabalhando lá estou visualizando o construtor de pipeline de agregação no Atlas o construtor de pipeline de agregação fornece uma representação visual de sua agregação pipeline vamos começar restringindo os documentos no pipeline a listagens de um quarto no mercado de sydney austrlia onde o tipo de quarto é toda a casa barra apartamento posso fazer isso usando o estágio de correspondência de dólar agora posso inserir uma query na caixa de código o A sintaxe de query para a correspondência de dólares é a mesma que a sintaxe para encontrar um que usamos no último vídeo para quartos eu escolheria um para endereço ponto país eu direi australia para anúncio visto endereço.Mercado eu direi sydney usarei o campo endereço.suburb mais tarde no pipeline,string então vamos apenas filtrar documentos em que endereço.suburb 1 não existe ou é representado por uma vazia então eu direi string endereço ponto subúrbio dólar existente o que significa que o campo existe e não é igual a uma de caracteres vazia e por último eu direi que definirá o tipo de quarto como toda a casa 20 barra apartamento como você pode ver o construtor de pipeline de agregação automaticamente atualiza a saída no lado direito da linha para mostrar uma amostra de documentos que serão incluídos nos resultados após o estágio de correspondência do dólar ser executado agora que reduzi os documentos a uma listagem de quarto no Sydney, Austrália mercado estou pronto para agrupá-los por ID subúrbio para que eu possa fazer isso usando o estágio de grupo em dólares O Atlas fornece alguns códigos de amostra que são úteis, pois eu sempre esqueço a sintaxe do do sublinhado os documentos serão agrupados pelo subúrbio campo quando eu agrupar os documentos eu quiser calcular o preço médio para cada grupo eu definirei o campo n como o preço médio o acumulador que eu gostaria de usar é o dólar avg, o que significa média para a expressão eu inserirá o preço em dólares, o que significa que o Ao calcular uma média no campo de preço aqui, podemos ver uma amostra de documentos após o estágio de grupos observe que os ID documentos foram transformados em relação ao estágio anterior, à direita eles parecem um pouco diferentes em vez de ter um documento para cada lista que agora temos um documento para cada subúrbio os documentos do subúrbio têm apenas dois campos sublinhados que é o nome do subúrbio e o preço médio agora que temos os preços médios dos subúrbios no mercado de sydney austrlia estamos prontos para classificá-los para descobrir quais são os menos importantes caro então podemos fazer isso usando o estágio de classificação do dólar o campo que eu quiser classificar é o preço médio que eu quiser classificar em ordem crescente, então inserirei um se 10 eu quiser classificar em ordem decrescente eu puder inserir negat ‑ um bem agora os documentos estão 10 ordenados do menos para o 10 mais caro não estou a fim de trabalhar com todos os documentos do subúrbio em meu aplicativo . usando o estágio de limite de dólar, vamos inserir . agora que criei um aggregation pipeline, agora que criei um aggregation pipeline, deixei-me mostrar como executá-lo de dentro de um Github script node.js estou começando a trabalhar a partir de um modelo inicial este modelo está disponível em meu repositório do se você quiser acompanhar um link está disponível na descrição abaixo este código do modelo é baseado no código que escrevi no primeiro vídeo desta série então, se você tiver alguma dúvida sobre o código, como o modelo está fazendo, volte ao 10 primeiro vídeo, começarei criando uma função cujo trabalho é imprimir os subúrbios mais baixos de um determinado mercado, então vamos fazer isso uma função assíncrona chamada imprimir subúrbios mais barato vai precisar de vários parâmetros primeiro vai precisar de um cliente conectado [ __ ] então precisamos conhecer o país e o mercado para o Atlas Search e, finalmente, precisamos saber o número máximo de resultados para imprimir Tudo bem, a primeira coisa que faço O que há a fazer nessa função é criar um pipeline, então direi que const pipeline é igual e vamos apenas criar uma array vazia por enquanto eu já criei um pipeline no Atlas, então não preciso codificar manualmente o pipeline aqui Vou voltar para o Atlas, cliquei no botão Exportar código do pipeline para o idioma deixe-me selecionar o nó como o idioma e, em seguida, vamos copiar esse código do pipeline. para colar o código do pipeline aqui agora esse código do pipeline 10 funcionaria bem como escrito, no entanto, ele é codificado para Atlas Search por resultados no mercado sydney austrlia Vamos substituir austrlia pela variável país e sydney por mercado então substituirei o número pelo 10 número máximo para imprimir tudo bem esse pipeline parece bom agora preciso executar esse pipeline posso executar um pipeline em node.js por chamando agregado em uma coleção que eu gostaria de agregar na coleção de listagens e avaliações então direi cliente dot db amostra airbnb dot collection listagens e avaliações dot aggregate vamos passar o pipeline para aggregate aggregate retornará um cursor de aggregation então vamos atribuir os resultados a uma constante chamada ag cursor um cursor de aggregation permite atravessar os resultados do aggregation pipeline nós posso usar cursores de aggregation para cada função para iterar esses resultados, então direi esperar ag 4 cursor dot cada um de eu criar uma função de seta e nomear o parâmetro listagem airbnb então para cada listagem i Estou só começando a imprimir o preço médio, então direi console.log listagem do ID airbnb ponto sublinhado clon listagem do airbnb ponto preço médio bem minha função está concluída vamos chamá-la que 10 eu queira imprimir os subúrbios mais baixos de sydney austrlia mercado, então direi para aguardar a impressão dos subúrbios mais baixos eu passarei o cliente [ __ ] para o país, direi austrlia para o mercado, direi 10 sydney e para o número máximo de impressão, direi . tudo bem, vamos tentar então salvar meu arquivo e vamos executá-lo perfeitamente aqui 10 podemos ver os subúrbios mais baixos no mercado de sydney classificados do menos para o mais caro agora eu saiba quais subúrbios começar a pesquisar como i preparar-se para a minha viagem a Sydney, Austrália não é muito difícil, pois o bom aqui é que não precisei escrever várias query para fazer isso acontecer e não precisei processar os dados em meu script todos os cálculos aconteceram no MongoDB a estrutura de agregação é uma maneira incrivelmente poderosa de analisar seus dados aprender a criar pipelines pode parecer um pouco trabalhoso no início, mas vale a pena o inves apenas arranhões da superfície da estrutura de agregação eu altamente recomendável o curso gratuito da Universidade MongoDB especificamente sobre a estrutura de agregação que é chamado de a estrutura de agregação do MongoDB121 e eu mencionei que é gratuito os cursos e tem uma explicação mais completa de como a estrutura de agregação funciona e fornece detalhes sobre como usar os vários estágios do pipeline se você quiser experimentar o código que me viu escrever hoje confira minha série de blogs que aborda exatamente o mesmo conteúdo que eu também um Github repositório do para que você possa ver o código rapidamente links para ambos estão disponíveis na descrição abaixo agora que você tem os fundamentos do pipeline de agregação, está pronto para passar para o próximo tutorial tudo sobre change streams e Atlas Triggers nesse vídeo você aprenderá como automaticamente às alterações no seu React banco de dados, portanto, certifique-se de clicar em inscrito para não perder o vídeo se tiver alguma dúvida sobre o que viu no vídeo de hoje ou qualquer pergunta sobre o MongoDB, eu o envio para perguntar a eles na comunidade MongoDB, meus membros e eu estamos lá todos os dias respondendo perguntas por chat com membros de nossa comunidade e eu gostaria muito de vê-lo lá, espero vê-lo em breve.
Relacionado
Tutorial
Use o MongoDB como o armazenamento de dados para seu CMS Strapi Headless
Sep 23, 2022 | 8 min read
Tutorial
Como construir um gráfico animado da linha do tempo com MongoDB Charts Embedding SDK
Dec 13, 2023 | 6 min read