Explore o novo chatbot do Developer Center! O MongoDB AI chatbot pode ser acessado na parte superior da sua navegação para responder a todas as suas perguntas sobre o MongoDB .

Saiba por que o MongoDB foi selecionado como um líder no 2024 Gartner_Magic Quadrupnt()
Desenvolvedor do MongoDB
Central de desenvolvedor do MongoDBchevron-right
Idiomaschevron-right
JavaScriptchevron-right

Começando com MongoDB e Mongoose ODM (Biblioteca de Modelagem de Dados de Objetos)

21 min • Publicado em maio 24, 2022
MongoDBJavaScript
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Vídeo
star-empty
star-empty
star-empty
star-empty
star-empty
Pesquisar
00:00:00Introdução ao Mongoose
- euntroducteuon to Mongoose as an elegant MongoDB object modeleung tool for Node.js. - Explanateuon of Mongoose 's role as an ODM leubrary and euts features.
00:01:46Configurando o ambiente
- eunstructeuons on setteung up Node.js, eunstalleung Mongoose, and confeugureung the development enveuronment.
00:05:16Definindo esquemas e modelos
- Detaeuled explanateuon of createung Mongoose schemas and models, euncludeung feueld defeuneuteuons and data types.
00:11:59Inserindo e Consultando Dados
- Demonstrateung how to eunsert data eunto MongoDB useung Mongoose and queryeung the eunserted data.
00:16:13Atualizando e excluindo documentos
- Overveuew of updateung document feuelds and deleteung documents useung Mongoose methods.
00:22:50Opções avançadas de esquema
- Deuscusseuon on setteung requeured feuelds, defaults, and other advanced schema opteuons eun Mongoose.
00:27:01Usando Vários Esquemas
- Createung and useung multeuple schemas to manage related data and demonstrateung the populate method.
00:33:07Middleware e Considerações finais
- Explaeuneung the use of Mongoose meuddleware for pre-save acteuons and summareuzeung the benefeuts of useung Mongoose weuth MongoDB.
00:41:19Conclusão
- Feunal thoughts on the advantages of useung Mongoose and encouragement to explore further weuth proveuded resources.
O foco principal do vídeo é aprender a usar o Mongoose com o MongoDB para criar modelos de dados estruturados, executar operações de banco de dados e gerenciar relacionamentos entre dados em um ambiente Node.js.
} Pontos-chave
  • O Mongoose é uma biblioteca ODM para o MongoDB que simplifica a modelagem de dados, a aplicação de esquemas e a validação.
  • Ele fornece uma estrutura de esquema semirrígida, permitindo um equilíbrio entre flexibilidade e integridade de dados.
  • Os esquemas Mongoose definem a estrutura de documentos dentro de uma coleção, especificando tipos de campo e regras de validação.
  • Os modelos no Mongoose são construtores compilados a partir de esquemas e gerenciam operações CRUD para documentos.
  • O vídeo demonstra a configuração de um ambiente Node.js, a instalação do Mongoose e a criação de esquemas e modelos.
  • Ele abrange a consulta, inserção, atualização e exclusão de documentos usando métodos Mongoose.
  • O vídeo também explica como usar o middleware para ações de pré-save e como fazer referência a outros esquemas dentro de um modelo.
Todos os vídeos do MongoDB

Transcrição completa do vídeo
neste vídeo, aprenderemos como mongoose uma biblioteca para MongoDB pode ajudá-lo a estruturar e acessar seus dados com facilidade muitos que aprenderam MongoDB foram apresentados a ela por meio de uma biblioteca muito popular mongoose o que é mongoose foi descrito como objeto MongoDB elegante modelagem para nodejs é uma biblioteca de modelagem de dados de objeto ou odm para MongoDB com modelagem de dados mongoose a validação do modelo de aplicação de esquema e a manipulação geral de dados se torna fácil se você quiser ouvir o mantenedor de mongoose validkarpov que o colocamos no podcast do MongoDB em que o link do capítulo está a descrição abaixo agora por que mongoose por padrão O MongoDB tem um modelo de dados flexível tão flexível que vale tudo isso torna os bancos de dados MongoDB muito fáceis de alterar e atualizar no futuro, mas muitos desenvolvedores estão usando esquemas mais rígidos agora, enquanto tudo o que o mongoose faz também pode ser feito usando o driver MongoDB para nó. O mongoose JavaScript abstrai alguns dos recursos dos drivers do MongoDB e os envolve em um bom arco o mongoose força um esquema semirrígido desde o início com mongoose temos que definir um esquema e um modelo então o que é um esquema um esquema define a estrutura de sua coleção documentos um esquema [ __ ] mapeia diretamente para uma coleção do MongoDB aqui está um exemplo de um esquema agora com esquemas nós definimos cada campo e seu tipo de dados tipos permitidos são número da string buffer de data boolean objeto misto ID array decimal 128 e mapa agora que sabemos o que é um esquema o que é um modelo bem os modelos pegam seu esquema e o aplicam a cada documento em sua coleção os modelos são responsáveis por todas as interações do documento, como criar, ler, atualizar e excluir ou CRUD , é importante observar que o primeiro argumento passado o modelo deve ser a forma singular do nome da sua coleção mongoose muda automaticamente isso para a forma plural transforma em minúsculas e usa isso para o banco de dados col nome da leção então, neste exemplo, a string de blog em maiúsculas é convertida na coleção de blogs em letras minúsculas no MongoDB então também passamos nosso objeto de esquema de esquema de blog vamos configurar nosso ambiente estou começando a presumir que você tem nó.JavaScript instalado e VS Code , se você não os tiver, Go nodejs.org e code.visualstudio.com para baixar e instalar as versões apropriadas para seu sistema operacional, então agora no VS Code , vamos abrir nosso terminal e vamos para digitar npm init dash y que vai inicializar nosso projeto e aceitar todos os padrões em seguida, instalaremos o mongoose também instalaremos o nodemon como uma dependência de desenvolvimento agora Go entrar em nosso package.json e vamos editar isso script temos um script de teste, vamos mudar isso para dev e vamos fazer isso iniciar nosso índice. Arquivo JavaScript usando o nodemon O nodemon monitorará nosso projeto e, após cada salvamento, ele o reiniciará automaticamente para nós depois disso, também vamos adicionar um tipo de módulo isso nos permitirá usar módulos es em vez do JavaScript comum isso também é vai nos permitir usar o nível superior e aguardar, então vamos salvar isso e fechá-lo e agora precisaremos criar nosso índice.JavaScript , primeiro importaremos o mongoose do mongoose e depois nos conectaremos com o mongoose agora precisaremos fornecer aos mongos uma connection string que você possa conectar a uma instância local do MongoDB, mas vamos usar o MongoDB Atlas se você não fizer isso ainda não tem uma conta Go em frente e inscreva-se para um cluster gratuito do MongoDB Atlas há um link na descrição abaixo se você ainda não tiver uma configuração de cluster Go assistir ao meu vídeo de introdução ao Atlas para criar e configurar seu cluster uma vez você tiver seu cluster configurado, poderá obter sua connection string no painel do MongoDB Atlas bem aqui, ao lado do nosso cluster, clicaremos em conectar e, em seguida, clicaremos em conectar seu aplicativo e essa é a nossa connection string vamos copiar isso agora de volta ao VS Code em nosso índice. Arquivo JavaScript , colaremos esta string de conexão aqui que ela já foi adicionada meu usuário e só preciso inserir minha senha que criei durante a configuração do cluster minha senha é supersegreda é [ __ ] é claro que depois deste vídeo i' Vamos remover esse usuário então essa connection string não vai funcionar para você agora a connection string também fará referência ao meu primeiro banco de dados você pode alterar isso para o que quiser chamar seu banco de dados eu só estou vai sair agora antes de fazer qualquer coisa com nossa conexão, precisaremos criar um esquema e um modelo, o ideal é que você crie um arquivo de modelo de esquema para cada esquema necessário, então vamos criar uma nova estrutura de arquivo de pasta então vamos criar isso aqui nós vamos criar uma pasta de modelo e, em seguida, um blog.JavaScript arquivo dentro do primeiro vamos importar mongoose de mongoose então vamos desestruturar o esquema e o modelo do mongoose em seguida, definiremos nosso esquema de blog criando um novo esquema mongoose e então podemos definir todos os campos que nossos documentos devem ter então primeiro teremos um título e este será do tipo string também teremos um slug que será do tipo string teremos um autor publicado será do tipo string conteúdo do tipo string então teremos têm tags que será uma array de strings, então definimos uma array com colchetes e o conteúdo da array pode ser qualquer coisa, mas para esta instância vamos usar strings que também teremos criado em e um aplicativo atualizado que são datas e, em seguida, adicionaremos comentários, que será uma array de objetos dentro de cada objeto, teremos um conteúdo de usuário e votos o usuário e o conteúdo serão strings e os votos um número por último definiremos nosso modelo de blog e usaremos o modelo mongoose e passe para argumentos que o primeiro é a nossa coleção lembre-se de que esse mongoose usa automaticamente a versão plural em minúsculas como o nome da coleção, então essa se tornará a coleção de blogs em letras minúsculas em nosso banco de dados MongoDB agora, para o segundo argumento, passamos nosso objeto de esquema de blog e então, vamos exportar o padrão nosso blog vamos salvar isso agora que temos nosso primeiro modelo e esquema configurado, podemos começar a inserir dados em nosso banco de dados de volta ao índice.JavaScript , vamos inserir um novo artigo de blog, então primeiro precisamos importar nosso modelo de blog que acabamos de criar. Em seguida, criaremos um novo objeto de blog chamado artigo, que definirá os dados que queremos salvar. objeto que contém todos os dados que queremos salvar e, em seguida, inseriremos este artigo em nosso banco de dados MongoDB usando o método salvar mongoose vamos adicionar um pouco mais depois disso para registrar o que está atualmente no banco de dados para isso estamos vamos usar o método localizar um, então para nosso primeiro artigo vamos aguardar blog.find1 vamos passar um objeto vazio que vai encontrar tudo e encontrar um que retornará a primeira coisa que ele encontra, então vamos console.log primeiro artigo então vamos executar o código então certifique-se de salvar isso e então vamos abrir nosso terminal e vamos executar npm run dev lembre-se que criamos esse script dev e eu receba um erro porque o blog não especificou o JavaScript do ponto, então adicionei o JavaScript do ponto salvou e agora temos nosso novo documento registrado agora porque estamos usando o nodemon neste projeto toda vez que salvamos o arquivo, o código será executado novamente, então se você quiser inserir um grupo de artigos apenas continue salvando, então volte ao nosso painel do MongoDB Atlas e veja o que temos, então Go aqui para procurar coleções agora, veremos que temos um meu primeiro banco de dados que foi criado e também uma coleção de blogs agora dentro da coleção de blogs podemos ver isso documento que acabamos de inserir no exemplo anterior usamos o método salvar mongoose para inserir um documento em nosso banco de dados isso requer duas ações primeiro temos que instanciar o objeto e então salvamos agora alternativa podemos fazer isso em uma ação usando o mongoose create então, em vez de criar um novo blog, digamos await blog dot create, ainda passaremos nosso objeto e, em seguida, não precisamos salvá-lo e não precisamos encontrar novamente vamos apenas console log nosso artigo vamos abrir up nosso console e t então, vamos salvar isso e ver que ele será executado novamente e Go obter uma nova postagem e, desta vez, também temos um novo ID Go de objeto, então se voltarmos ao nosso painel e atualizarmos, devemos ver isso novo documento e ID criado, então vamos criar outro artigo exatamente o mesmo, mas agora vamos pegar nosso artigo e vamos pegar o título e vamos torná-lo igual a outra coisa, digamos o host mais legal agora, porque fizemos uma alteração nele vamos precisar salvá-lo, então vamos dizer aaguardar artigo dot seguro e depois consoleiremos o registro nosso artigo então vamos abrir nosso console para ver o registro e depois salvar o arquivo e agora podemos ver a postagem mais legal e temos um novo ID de objeto se Se Go ao nosso painel e atualizarmos, verás esse terceiro documento e ele é a postagem mais legal. Não fica muito mais fácil do que isso, mas isso pode não ser o que pretendemos fazer, então vamos garantir que estamos atualizando o documento correto vamos usar um método mongoose especial localizar por ID isso vai obter nosso documento pelo ID de objeto então vamos copiar esse ID de objeto do último que criamos e não queremos criar um novo documento vamos dizer que o artigo vai aguardar blog.encontre por ID e temos nosso ID de objeto, então vamos chamar a função exec ou executar a função exata mongoose é técnicamente opcional e retorna uma promessa em meu Por experiência, é melhor usar essa função, pois ela evita alguns problemas de coçar a cabeça se você quiser ler mais sobre isso, incluirei um link para o mongoose Docs que fala mais sobre isso e promessas, então vamos abrir nosso terminal novamente e salvar o então agora encontramos nossa postagem mais legal do nosso ID de objeto agora há muitas outras opções de query no mongoose também, você pode conferir a lista completa nos Docs do mongoose agora, assim como no nó padrão do MongoDB. Drivers JavaScript , podemos projetar apenas os campos que precisamos, então vamos obter apenas o slug de título e os campos de conteúdo para que possamos fazer isso em nossa localização por ID , então primeiro passamos o ID objeto e, depois disso, podemos ter um segundo parâmetro opcional esse segundo parâmetro pode ser um objeto, uma string ou uma array de strings, então vamos apenas usar uma string e vamos dizer que queremos o título, o slug e o conteúdo , vamos abrir nosso terminal e salvar isso de novo é vai ser executado novamente e agora temos nosso título, nosso slug e nosso conteúdo, e ele sempre nos fornecerá nosso ID , a menos que dissamos especificamente para não apenas como no nó padrão do MongoDB. driver JavaScript , temos a exclusão e excluímos muitos métodos no mongoose, então aqui vamos aguardar a exclusão1 e vamos para o Atlas Search para o título de prettypost delete1 vai excluir o primeiro documento que acha que corresponde à nossa query então vamos registrar o blog e vamos ver o que isso faz então vamos abrir nosso terminal e salvar nosso arquivo e vemos o reconhecimento verdadeiro da conta um para que ela tenha sucesso e exclua o primeiro documento encontrado Como alternativa, também temos delete mini que excluirá todos os documentos que encontrar que correspondam à nossa query. datas ou comentários até agora definimos como deve ser a estrutura do nosso documento, mas não definimos quais campos são realmente necessários neste ponto, qualquer campo pode ser omitido, então vamos definir alguns campos obrigatórios em nosso blog. Esquema JavaScript , então aqui a string de título é exatamente a mesma que mudar isso em um objeto e dizer que nosso tipo é string então, transformando isso em um objeto, podemos passar mais parâmetros, então vamos também dizer que obrigatório é verdadeiro então agora o título é necessário, façamos a mesma coisa com o nosso slug, vamos fazer com que seja necessário, mas também vamos dizer que em letras minúsculas será verdadeiro um slug deve sempre estar em letras minúsculas e, por isso, queremos ter certeza de que, caso alguns caracteres maiúsculos são passados vamos defini-los automaticamente como minúsculas agora para publicação o tipo é booleano, mas não vamos dizer que é necessário, vamos dizer que o padrão é falso, então se publicar não estiver incluído será automaticamente adicionado e definido como falso também definiremos o autor como obrigatório deixaremos o conteúdo e as tags exatamente como estão, mas para criados também definiremos um padrão para os criados. use uma função de seta aqui porque queremos que isso r toda vez que um documento for inserido, isso será definido para a data e a hora atuais e também queremos que isso seja imutável, não queremos que ele seja alterado então a data será adicionada quando o documento for inserido e ele nunca poderá ser atualizado depois disso e deixaremos atualizados em e comentários como estão por enquanto e seguiremos em frente, então Go salvar isso e depois voltaremos ao nosso índice.JavaScript e vamos inserir outro documento, desta vez precisaremos incluir todos os campos necessários para que ele inclua um título, um slug e o conteúdo e as tags do autor vamos abrir nosso terminal e salvar o arquivo agora aviso aqui que temos um aplicativo criado campo adicionado para nós omiti o campo publish, mas agora em nosso documento publicamos false porque definimos isso como padrão em nosso esquema e o slug está em minúsculas embora eu tenha passado alguns caracteres maiúsculos no objeto de documento que o mongoose usa muitos padrões Os métodos do MongoDB introduz muitos métodos auxiliares extras que são abstraídos dos métodos regulares do MongoDB. A seguir, Go apenas alguns deles. O método existente retorna nulo ou o ID do objeto de um documento que corresponda à query fornecida, então aqui nós vamos dizer blog.exists e vamos procurar o autor de jesse Hall e depois console.log blog vamos salvar isso para que agora possamos ver que ele foi encontrado e nos é dado o ID do objeto mo goose também tem seu próprio estilo de consultar dados o método onde nos permite encadear e construir queries então, em vez de usar esse método de busca padrão, temos blog.find1, estamos procurando o autor de jesse Hall, vamos salvar isso e podemos ver que retornamos esse artigo em vez de usar o método padrão poderíamos usar o método onde equivalente, então aqui vamos dizer para aguardar blog.where o ponto do autor é igual a jesse Hall e vamos registrar o blog onde e salvaremos isso e verás que devolvemos o mesmo artigo então qualquer um desses métodos funciona use o que lhe parecer mais natural você também pode encadear vários métodos onde para incluir até a query mais complicada agora para incluir projeção ao usar o método onde encadear o selecionar método após sua consulta então após nossa consulta vamos dizer selecionar e então vamos selecionar nosso título e nosso autor somente vamos salvá-lo e agora podemos ver que retornamos apenas nosso título e autor junto com o ID do objeto que é importante saber e suas opções ao modelar dados se você vier de um banco de dados relacional, você será usado para ter tabelas separadas para todos os seus dados relacionados, mas geralmente no MongoDB os dados que são acessados juntos devem ser armazenados juntos, então você deve planejar isso antes do tempo, se possível, aninhar dados dentro do mesmo esquema quando faz sentido, mas se você tiver a necessidade de um esquema separado, o mongoose faz com que seja fácil, então vamos criar outro esquema para que possamos ver como vários esquemas podem ser usados juntos criaremos um novo arquivo em nosso diretório de modelo que vamos chamar de usuário.JavaScript primeiro, vamos importar mongoose de mongoose e, em seguida, vamos desestruturar nosso esquema e modelo do mongoose e, em seguida, criaremos um novo esquema de usuário e, em seguida, vamos passar em nossos campos, então primeiro nós re vai ter um nome e será do tipo string e será necessário também terá um e-mail isto será do tipo string também terá um comprimento mínimo então este é outro mongoose que podemos incluir, portanto, vamos definir o comprimento mínimo como 10. que isso soa razoável para um endereço de e-mail, vamos defini-lo como obrigatório e os endereços de e-mail devem estar em letras minúsculas, então definiremos isso como "true" em seguida criaremos nosso modelo de usuário passaremos o nome do modelo e o usuário esquema e, em seguida, exportaremos isso como padrão, então vamos salvar isso e agora precisamos fazer referência a esse modelo de usuário em nosso esquema de blog para o autor e o usuário de comentários, então vamos Go para o nosso blog.JavaScript e agora para autor em vez de string vai ser schematypes.object ID agora de onde esses tipos de esquema vêm, bem, Go voltar aqui e realmente precisamos importar isso do mongoose e também precisamos adicionar uma ref ou uma referência isso vai se referir ao nosso modelo de usuário isso nos permitirá colocar aspas entre aspas e unir nossos dados um pouco mais tarde, então vamos incluir a mesma coisa aqui para o nosso usuário sob os comentários então esse será um tipo de esquema de ID de objeto vai fazer referência ao modelo do usuário e ele também será necessário para cada comentário que salvaremos e, por último, vamos Go para o nosso índice.JavaScript e, no topo, precisaremos importar nosso modelo de usuário e, em seguida, vamos criar um novo usuário, então vamos dizer user await user.create e daremos um nome e um e-mail e depois criaremos um novo artigo, então diremos blog.create diremos incríveispost3 e no campo do autor, em vez de uma string este será o usuário.ID , então estamos criando esse usuário e agora vamos obter o ID do usuário e passá-lo a este artigo, então vamos abrir nosso terminal e salvar nosso arquivo e agora vemos a publicação três e um aviso no campo do usuário que acabamos temos nosso ID de objeto, Go voltar ao nosso painel do Atlas também, vamos atualizar isso e devemos ver aqui na parte inferior que temos nosso autor com nosso ID de objeto e observe aqui uma nova coleção chamada usuários e temos nosso novo usuário também então, como obtemos todas as informações do nosso autor junto com o artigo, podemos usar o método de preenchimento mongoose no VS Code , vamos encontrar nosso artigo, então diremos que o artigo vai aguardar blog.find1 vamos procurar o título da publicação legal 3 e agora vamos preencher e especificar qual campo queremos preencher esse é o campo do autor , vamos abrir nosso terminal e salvar nosso arquivo e agora deixe-me expandir isso e agora podemos ver que temos nosso artigo e os dados do autor são todos po Leia também o artigo O mongoose, na verdade, usa o método de pesquisa de dólar do MongoDB nos EUA para obter esses dados no middleware do Mongoose são funções executadas antes e ou durante a execução de funções assíncronas no nível do esquema, vejamos um exemplo disso Vamos atualizar a data atualizada toda vez que um artigo for salvo ou atualizado, vamos adicioná-lo a nosso blog. modelo JavaScript então de volta ao nosso blog.JavaScript após nosso esquema, vamos dizer blog schema.pre e, em seguida, passar para salvar então isso vai ser antes de salvarmos e agora temos uma função e essa função recebe um próximo método então vamos dizer este ponto atualizado em será igual a uma data.de vez em quando, vamos chamar o próximo para mover agora de volta em nosso índice.JavaScript , vamos encontrar um artigo, vamos encontrá-lo por ID , então pegue um dos ids de nossos artigos e vamos dizer que artigo.o título será igual ao título atualizado, então nós Vamos aguardar o salvamento e, em seguida, o console registra o artigo então vamos abrir nosso terminal, vamos salvar nossos arquivos e agora nunca definimos nenhuma data atualizada, mas observe que agora temos uma data atualizada que foi tudo feito por meio do esquema agora, além de pré- há também uma função de middleware pós-mongoose, acha que nosso exemplo aqui poderia usar outro esquema para os comentários, então tente criar esse esquema, testá-lo e adicionar alguns usuários e comentários agora há muitos outros grandes ajudantes do mongoose métodos que não são abordados aqui, então certifique-se de Go conferir a documentação oficial para obter referências e mais exemplos incluirei um link na descrição achando ótimo que os desenvolvedores tenham muitas opções para conectar e manipular dados no MongoDB se você preferir mongo ose ou os drivers padrão do MongoDB no final das contas, o que importa são os dados e o que é melhor para seu aplicativo e seu caso de uso posso ver por que o mongoose chama muitos desenvolvedores e pare de usá-lo muito mais no futuro, pois bem, se este vídeo lhe salvou dê um joinha e se inscreva para mais vídeos como esse você

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Vídeo
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Exemplo de código

myLeG


Jul 07, 2022 | 1 min read
Tutorial

Impressione-se: sinônimos no Atlas Search


Feb 27, 2023 | 9 min read
Tutorial

Aplicativos MEAN Stack sem servidor com Cloud Run e MongoDB Atlas


Apr 02, 2024 | 8 min read
Tutorial

Consulta flexível com Atlas Search


Jul 12, 2024 | 3 min read