Primeiras aulas do curso MongoDB: Modelagem de dados

MongoDB: Modelagem de dados

Porque modelar - Introdução

Olá, pessoal! Sejam bem-vindos ao curso de modelagem de dados com o MongoDB. Se essa palavra, modelagem de dados, é um pouco estranha para você, ela é o processo de você alterar a estrutura do seu banco de dados até achar uma formula que representa melhor os dados que estão dentro dele. Nesse curso, vamos fazer uma modelagem de um blog. Vamos utilizar como referência o blog da Caelum.

Vamos armazenar autores, artigos e até comentários. Tudo isso, vamos fazer aqui utilizando o Visual Studio. Vamos digitar aqui os comandos do MongoDB, e ele vai ser representado por essa extensão, que é uma extensão do CosmosDB que já possibilita acessarmos o MongoDB aqui no Visual Studio Code.

Nós também vamos utilizar o MongoDB Compass, que é um programa muito bacana para conseguirmos ver os dados do nosso banco. Espero ver vocês no curso. Até lá!

Porque modelar - Inserindo os autores

Ficamos encarregados de construir uma modelagem de banco de dados para um blog. Vamos usar aqui, o blog da Caelum como exemplo. Aqui no blog da Caelum, nós temos na página inicial, vários artigos, e cada um desses artigos - vou clicar no primeiro - em cada um desses artigos temos várias informações dentro.

Temos o título, temos o conteúdo, temos a parte da URL que chamamos de “slug”. Temos também algumas informações do autor desse artigo, que conseguimos ver que foi escrito por Gabriel Ferreira.

Ele foi postado no dia 4 de junho de 2019, e está aqui nessa categoria que chama “Inovação”, então, se fossemos precisar modelar os dados para o banco de dados, a primeira coisa que precisaríamos fazer é identificar os dados necessários para guardar no banco de dados.

Então, os dados que vamos começar a guardar aqui pelo o autor, temos um autor e vamos começar por ele. Temos aqui o nome do autor, por exemplo. Então eu vou pegar aqui um bloco de notas. Temos aqui o nome do autor, temos também aqui em baixo, se formos até o autor - vamos clicar em “mais sobre o autor”.

Nós vemos que ele também tem uma descrição, então vamos colocar aqui: “descrição” e além da descrição, como o Gabriel coloca o artigo? Ele provavelmente vai ter que entrar em uma página administrativa e entrar no e-mail e a senha dele, para assim, conseguir colocar os artigos. Então, também temos o e-mail e temos a senha.

Agora podemos modelar isso no banco de dados, com isso vamos gerar uma entidade, então vamos ter a entidade “autor” com essas informações que levantamos - o nome, a descrição, o e-mail e a senha. Vamos incluir eles no banco de dados?

Eu vou vir aqui e vou abrir o Visual Studio Code. Aqui no Visual Studio Code, vamos criar um novo arquivo para fazer isso. Eu vou criar um arquivo e vou salvar ele, com o nome de “inserindo-autores.mongo”.

Ele criou em uma outra pasta, eu vou mudar para pasta raiz. Pronto! Na pasta raiz do nosso projeto, mas você deve ter se perguntando: “por que esse arquivo ‘.mongo’? Como o Visual Studio vai entender ele?”

Nós instalamos aqui, uma extensão. Se você não tem ela instalada, na parte de configurações do curso vai ter detalhes de como podemos instalar essa extensão, mas é a extensão que se chama CosmosDB. Essa extensão vai habilitar esse menu do lado esquerdo, esse triângulo.

Se clicarmos nesse triângulo, ele vai nos mostrar quais bancos de dados temos, e se quisermos conectar em um deles, criar um banco de dados, vamos conseguir fazer por aqui. Então vou criar aqui um banco, vou clicar com botão direito aqui no IP.

Vamos criar, “Create Database” e vou digitar aqui, “blog”. Agora já podemos tirar dessa tela, podemos apertar a tecla “Esc” e já estamos aqui no blog. Estamos conectados a esse banco de dados.

Se não mostrar “conected”, você pode clicar em cima, nesse banco de dados e clicar em “conect”, e ele vai conectar nesse banco. Agora, se clicarmos naquele arquivo “.mongo” que fizemos, ele deve te mostrar aqui no começo, conectado a “blog” e vai dar uma opção de executar.

Executar o quê? Os comandos. Agora nós vamos usar eles para inserir o autor, então aqui no bloco de notas, eu vou jogar aqui no Visual Studio Code para termos o que vamos precisar fazer mais fácil.

Eu vou utilizar aqui, o comando do Mongo DB, para inserirmos isso em qual coleção? Na coleção de autores que vamos criar assim que inserimos o primeiro documento, então “db.autores.insertOne” e aqui vamos colocar o documento.

O documento vai ter a chave, nome o vai ser igual ao “Gabriel Ferreira”. Vai ter a descrição dele. A descrição eu vou vir aqui no blog da Caelum e copiar esse começo aqui. Agora vamos colocar também o e-mail dele, vamos colocar aqui, “gabs@caelum.com.br”.

E vamos dar uma senha para ele, a senha vai ser “gabs1234”. Se viermos aqui nesse comando logo aqui em cima, e apertarmos algumas vezes a tecla “Enter”, vamos conseguir visualizar melhor.

Ele vai dar aqui o “Execute”, então vou clicar aqui em “Execute”. Ele abriu aqui do outro lado da tela, o “ok” com número “1” aqui. Então se viermos no próprio Visual Studio Code, se clicarmos aqui no triângulo da extensão do CosmosDB, podemos recarregar e atualizar essa página aqui, e vamos ver que o nosso blog, agora tem uma coleção de autores.

E se clicarmos nessa coleção de autores, vamos conseguir ver aqui o documento que acabamos de inserir. “Gabriel Ferreira”, “Desenvolvedor, instrutor e criador de conteúdo na Alura”.

Então, agora temos também mais uma maneira de conseguirmos ver os dados do MongoDB, e a partir de um programa que chama MongoDB Compass. Eu já tenho ele instalado aqui. Se abrirmos, ele vai mostrar para nós o banco de dados que temos criado. Se eu clicar aqui para recarregar, ele vai mostrar o banco de dados blog que nós criamos.

Vamos deixar carregar aqui. Pronto! Apareceu aqui o blog e vou clicar nele. Ele tem a coleção de autores, e clicando na coleção, ele mostra os documentos, que aqui só temos 1. Então para não termos que inserir todos os outros autores na mão, vamos vir no editor, clicar nos arquivos e dentro de “insercoes”, vamos executar esse arquivo aqui que se chama “inserir-autores.mongo”. Ele abriu aqui desse lado e ele tem inserção aqui de mais dois autores.

Vamos clicar aqui em “Execute All”. Clicamos em “Execute All” e ele executou. Para vermos se ele executou mesmo, podemos abrir aqui no Visual Studio Code. Vemos que tem mais documentos aqui. Eu vou fazer uma coisa para conseguirmos ver melhor a tela. Pronto! Se clicarmos aqui, vamos conseguir ver que tem mais dois autores, que foram o que inserimos.

Olhando pelo Compass, eu vou recarregar essa tela. Ele mostrou os outros autores.

Porque modelar - Inserindo os artigos

No nosso blog, o autor vai poder escrever artigos, e quando ele escreve os artigos, vamos precisar salvar algumas informações no banco de dados. Quais informações são essas?

Quando ele escreve um artigo, a primeira coisa que ele vai precisar escrever aqui é o título. Por exemplo: “Projeto Caelum nas Faculdades”, então eu vou anotar aqui no Visual Studio Code. Vou abrir até um outro arquivo para ficar mais organizado, o que estamos fazendo. Eu vou dar o nome para “inserindoartigos.mongo”.

Então, aqui no “inserindo-artigo.mongo”, vamos começar no canto, só listando o que vamos precisar. Para um artigo, nós vamos precisar do título. Depois do título, qual é outra informação que vamos precisar salvar no banco de dados?

O autor vai ter que escrever o conteúdo, então o conteúdo é uma outra informação que vamos precisar armazenar. Vou colocar aqui, o conteúdo. Ele vai precisar definir aqui qual vai ser a “slug”. “Slug” é esse pedaço da URL, então vamos colocar aqui também, a “slug”.

E por fim, um artigo também vai ter que ter a data que ele foi mostrado para podermos mostrar aqui. Posto 04/06, então vamos colocar a data que o artigo foi criado. Perfeito!

Essas são as informações de um artigo que vamos precisar para guardar no banco de dados. Vamos precisar da “slug”, do título, do conteúdo e a data que ele foi criado. Com isso, vamos conseguir gerar uma entidade que vai ser essa daqui. Vamos ter o artigo e as informações dele.

Só que, vamos pensar em uma coisa: temos duas entidades no nosso banco, vamos ter o autor e vamos ter o artigo. O autor vai escrever os artigos, mas o autor vai poder escrever mais de um artigo.

Ele pode escrever vários, ele não vai precisar escrever um só, só que um artigo vai ser escrito só por um autor. Quando temos essa relação, podemos dizer que temos essa relação de um para muitos. Um autor vai escrever muitos artigos, mas um artigo vai ser escrito só por um autor.

E quando formos implementar isso no MongoDB, temos que levar em conta a quantidade dessa relação, do lado do muitos. Sabemos que um autor vai escrever muitos artigos. Mas quantos?

Temos que, mais ou menos, prever para modelarmos de uma maneira mais efetiva. Sabemos que um autor pode escrever até, no máximo, uma centena de artigos, mas sabemos que ele não vai escrever, por exemplo milhões de artigos. Então podemos modelar esses dados, guardando os artigos dentro de um “array”, dentro do próprio documento do autor.

Então vamos colocar isso no código. Voltando aqui para o editor, eu vou vir aqui e nesse arquivo eu vou digitar o comando para atualizarmos aquele documento do autor, para inserirmos o “array” com os documentos de artigo lá dentro.

Então, vamos primeiro aqui na “collection” de autores e chamar o comando “update”. Vamos fazer o “update” só nos documentos que tem o nome como “Gabriel Ferreira”. Como segundo argumento vamos colocar aqui o “$set” para definirmos o campo dos artigos, e os artigos vão ser aqui, um “array”.

Então, no “array”, vamos colocar o primeiro artigo, e dentro do primeiro artigo vamos colocar essas informações que levantamos aqui em baixo. Vamos colocar “slug”, vamos colocar também o título, vamos colocar também o conteúdo e vamos colocar também a data que ele foi criado. Agora vamos preencher essas informações aqui, com as informações que temos do blog. Então eu vou copiar a “slug” desse artigo e colar aqui.

O título vai ser a mesma coisa. Eu vou copiar o título. Colei. O conteúdo, eu vou vir aqui no blog, e esse conteúdo aqui é muito grande. Só para colocarmos no banco de dados eu vou copiar uma parte pequena, vou copiar só esse parágrafo aqui. Assim fica mais fácil de ler.

Agora, a data que criado, nós vamos colocar, ao invés de uma “string”, vamos colocar um tipo especial do documento do MongoDB. Vamos colocar o “ISODate”, ele vai aceitar como argumento uma “string” e vamos passar a data que esse artigo foi criado, que é dia 4 de junho de 2004.

Então vamos colocar aqui, “2019/06/04”. Agora podemos clicar aqui em “Execute”. Se clicarmos aqui em “Execute”, ele conseguiu inserir e se virmos no Compass, eu vou recarregar. Agora ele mostra aqui que o Gabriel Ferreira tem artigos.

E ele já mostra o primeiro artigo que incluímos, já está dentro do documento do autor. Armazenamos ele aqui em um “array”, e para inserimos os outros arquivos, para não levar muito tempo e digitarmos ele na mão, eu já deixei preparado um arquivo que tem o nome de “inserir-artigos.mongo”. Esse arquivo.

Vamos entrar nele e veremos que ele tem vários artigos aqui. Se clicarmos aqui em cima em “Execute All”, ele vai executar todos esses comandos e se entrarmos no MongoDB Compass e recarregar, todos os outros autores vão ter artigos. Esse daqui tem um só, mas esse daqui tem dois artigos. Então conseguimos armazenar os artigos dentro de um “array”.

Sobre o curso MongoDB: Modelagem de dados

O curso MongoDB: Modelagem de dados possui 147 minutos de vídeos, em um total de 44 atividades. Gostou? Conheça nossos outros cursos de NoSQL em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda NoSQL acessando integralmente esse e outros cursos, comece hoje!

  • 1266 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1266 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1266 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1266 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Conheça os Planos para Empresas

Acesso por 1 ano

Estude 24h/dia onde e quando quiser

Novos cursos todas as semanas