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

MongoDB e Node.js: Conexão e operações CRUD (parte 1 de 4)

42 min. – Publicado 29 abril, 2021
Node.jsMongoDBJavaScript
Í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 MongoDB e Node.js
Lauren Shafer, a staff developer advocate at MongoDB, euntroduces the veudeo sereues aeumed at helpeung developers learn to use MongoDB weuth Node.js.
00:01:09Configurando e conectando ao MongoDB
The veudeo walks through setteung up the enveuronment, checkeung Node.js eunstallateuon, and eunstalleung the MongoDB Node.js dreuver. eut also covers createung a MongoDB database useung MongoDB Atlas.
00:02:01Visão geral das operações CRUD
Lauren explaeuns CRUD operateuons and prepares to demonstrate each operateuon eun MongoDB.
00:03:04Noções básicas sobre armazenamento de dados MongoDB
The veudeo explaeuns how MongoDB stores data eun BSON documents weutheun collecteuons and the eumportance of the `_eud` feueld.
00:04:00Criando documentos
Lauren demonstrates how to create new documents eun a collecteuon useung `eunsertOne` and `eunsertMany`.
00:05:00Documentos de leitura
The process of readeung documents from a collecteuon eus shown, euncludeung queryeung for a seungle document weuth `feundOne` and multeuple documents weuth `feund`.
00:06:00Atualizando documentos
The veudeo covers updateung documents useung `updateOne`, `updateMany`, and the `upsert` opteuon.
00:07:00Excluindo documentos
Lauren concludes the CRUD operateuons by showeung how to delete documents useung `deleteOne` and `deleteMany`.
00:07:57Considerações finais
The veudeo wraps up weuth a summary of the topeucs covered and a teaser for the next veudeo on the aggregateuon framework.
O foco principal do vídeo é instruir os visualizadores a executar operações CRUD no MongoDB usando o Node.js, bem como fornecer uma compreensão da estrutura de armazenamento de dados do MongoDB.
} Pontos-chave
  • Como se conectar a um banco de MongoDB database a partir de um script Node.js.
  • Noções básicas sobre o armazenamento de dados do MongoDB em documentos e collections.
  • Demonstrações de operações CRUD (Create, Read, Update, Delete).
  • Introdução à estrutura de aggregation para manipulação avançada de dados.
Todos os vídeos do MongoDB

Transcrição completa do vídeo
você está usando o node.js quer aprender a usar o MongoDB em caso afirmativo essa é a série de vídeos para você olá pessoal, eu me chameo lauren shafer e membro da equipe de desenvolvedores no MongoDBadoro ajudar os desenvolvedores a serem bem-sucedidos à medida que criam seus aplicativos nesta série de vídeos de início rápido eu guiarei você pelas noções básicas de como começar a usar o MongoDB e o node.js juntos, então hoje mostrará como se conectar a um banco de dados MongoDB e como executar cada um de as operações CRUD , se você não estiver familiarizado com o acrônimo CRUD que ele significa criar, ler, atualizar e excluir agora para aqueles que preferem ler a assistir a vídeos eu cobri você tem uma série de artigos que aborda exatamente o mesmo conteúdo então confira a descrição abaixo para ver um link também que eu tenho um repositório do Github que contém todo o código que você me verá aqui hoje novamente verifique a descrição abaixo para ver um link com que vamos pular direto para a primeira coisa que precisamos fazer é prepare-se para trabalhar para dia em VS Code mas fique à vontade para usar qualquer editor de código de sua preferência, a primeira coisa que fazer é verificar se tenho o nó instalado, então executarei o nó v, como você pode ver, eu tenho a versão 14.15.4 em seguida, eu preciso instale o driver node.js do MongoDB o driver de nó permite que você interaja facilmente com bancos de dados MongoDB a partir de aplicativos nodejs você precisará do driver para se conectar ao seu banco de dados e executar queries, então se você não tiver o node.js do MongoDB driver instalado você pode instalá-lo com npm install MongoDB Tudo bem e posso verificar qual versão estou executando com npm list MongoDB como você pode ver estou executando a versão beta do 4.0 a próxima coisa que precisamos fazer é criar um Banco de dados MongoDB agora a maneira mais fácil de começar a usar o MongoDB é usar o MongoDB Atlas Atlas é o banco de dados totalmente gerenciado do MongoDB como serviço novo projeto vamos criar um cluster agora em um cluster de alto nível é um conjunto de nós onde as cópias do seu banco de dados serão armazenadas agora eu estou escolhendo criar um cluster gratuito porque eu curto coisas grátis, mas há uma variedade de opções aqui que você pode escolher vale a pena explorar mas eu agora que o cluster está criado, eu não estou a fim de esperar, então, com a milagrosidade da edição, agora que o cluster foi criado, vamos inserir alguns dados aqui clique neste botão de conexão esta caixa de diálogo vai me IP sobre como me conectar O Atlas tem um recurso de segurança integrado é IP vai criar um usuário de banco de dados, então vamos nomear a demonstração do usuário que estou andando g para inserir uma senha e ter certeza de que se você estiver me seguindo anote esse nome de usuário e senha que você precisará deles novamente mais tarde, então agora eu posso escolher meu método de conexão eu quiser me conectar a partir de um script node.js então eu selecionaremos conectar seu aplicativo eu selecionarei nodejs como meu driver e então estou começando a copiar esta connection string agora que meu banco de dados está configurado é hora de codificar corretamente essa é a parte legal então vamos escrever um script node.js VS Code a primeira coi comece com uma função principal e vamos torná-la assíncrona dentro dessa função, conectar-me-á à função de chamada do cluster MongoDB ons que consultam o banco de dados e se desconectam do cluster, então a primeira coisa que vamos fazer dentro do principal é criar uma constante para o meu uri de conexão vamos colar o uri de conexão que copiei no Atlas alguns momentos atrás agora preciso atualizar meu nome de usuário e senha para corresponder ao usuário de banco de dados que criei agora apenas uma observação aqui o nome de usuário e a senha que estou usando aqui não são minhas credenciais do Atlas este é o usuário de banco de dados que você me viu criar no Atlas apenas um momento atrás, agora que temos nosso uri, podemos criar uma instância de cliente, então diremos que cliente constante é igual a uri novo cliente agora eu estou me conectando ao meu cluster, então direi aguardo cliente dot connect client.connect retorna uma promessa, então estou usando a palavra-chave await para indicar que devo bloquear a execução adicional até que a operação seja concluída agora Se fizer alguma coisa sofisticada, só direi esse ar para console.ai r agora, gostaria de ter certeza de fechar a conexão com o meu cluster, então vamos encerrar a tentativa de captura com uma declaração final e colocaremos await client.close lá então, assim que tivermos nossa função principal escrita, precisamos ligue para ele e diremos principal e vamos enviar qualquer erro apenas para o console então diremos para pegar console.error tudo bem, vamos salvar o script e executá-lo então no meu terminal digitarei node demo.js e nada aconteceu na verdade, são boas notícias, isso significa que nada explodiu, então vamos fazer algo com essa conexão vamos listar os bancos de dados em nosso cluster para que eu crie uma nova função chamada listar bancos de dados e definirá o cliente como parâmetro e vamos fazer disso uma função assíncrona, então para obter nossa lista de bancos de dados usaremos os bancos de dados client dot db dot admin dot list e vamos aguardar esses resultados antes de continuar e então vamos atribuir os resultados a uma lista de bancos de dados nomeada constante agora que nós temos a lista de bancos de dados, estou apenas começando g para impr registra cada nome de banco de dados console.log traço db.name tudo bem, então minha função está boa agora só preciso chamá-la então dentro do principal vamos rolar para cima eu poderia dizer aguardar bancos de dados de lista e eu passaria o cliente tudo bem vamos tentar fazer isso, deixe-me salvar meu arquivo e vamos executá-lo novamente e ei, aqui está a minha lista de bancos de dados, então sabemos que estamos conectados com sucesso estamos extraindo dados do nosso cluster de forma bem direta, tudo bem, então antes de Go Mais tarde, vamos dedicar um momento para entender como os dados são armazenados no MongoDB O MongoDB armazena dados em documentos BSON BSON é uma representação binária de JSON JSON significa notação de objeto JavaScript então, quando você ler a documentação do MongoDB, verá com frequência o termo documento, mas pode pensar em um documento como simplesmente um objeto JavaScript agora para para aqueles que vêm do mundo do banco de dados relacional, podem pensar em um documento como equivalente a uma linha em uma tabela agora O MongoDB armazena grupos de documentos em collections agora para aqueles com background de banco de dados relacional que podem pensar em uma collection como sendo aproximadamente equivalente a uma tabela agora cada documento é necessário ter um campo chamado ID do sublinhado o valor do ID do sublinhado deve ser único para cada documento na coleção o útil é que o MongoDB criará automaticamente um índice no ID do sublinhado para você agora você pode escolher para tornar o valor do ID de sublinhado significativo em vez de um ID de objeto um tanto aleatório se você tiver um valor único para cada documento que gostaria de ser capaz de rapidamente Atlas Search, então vamos dar uma olhada em alguns dados nesta série de vídeos i' Vou usar o conjunto de dados de listagens do airbnb de amostra agora o banco de dados do airbnb de exemplo contém uma coleção chamada listagens e avaliações essa coleção contém documentos sobre anúncios do airbnb e th então vamos dar uma olhada em um documento na coleção de listagens e avaliações para que aqui você possa ver que a listagem tem um ID , um URL de listagem um nome, um resumo e muito mais você pode ver alguns tipos diferentes nesta documento para que possamos ver o nome é uma string o último script é uma data e os quartos são um número inteiro agora vejamos as conveniências é uma array agora, se a expandirmos, podemos ver que ela está armazenando uma array de strings tudo bem, vamos dar um olhe para um usando um endereço pode ver avaliações é uma array e, na verdade, é uma array de objetos, então, como você pode ver, você tem muita flexibilidade na forma como modela seus dados ao usar o MongoDB para obter mais informações sobre como o MongoDB armazena dados confira o MongoDB de volta ao webinar básico que eu co-hospedado d com ken alger e, como sempre, vamos colocar um link na descrição abaixo bem agora que nos conectamos a um banco de dados e sabemos como o MongoDB armazena dados vamos iniciar as operações CRUD e lembrar que CRUD significa criar leitura atualização e exclusão, então vamos retornar ao VS Code e continuaremos trabalhando no mesmo arquivo, então vamos começar com o c e o CRUD que é criar. Começarei criando uma nova listagem do airbnb, então eu Vamos criar uma nova função chamada criar lista e vamos fazer dela uma função assíncrona para os compartimentos que precisamos desse cliente, bem como para a nova lista que precisamos criar, então, para inserir a nova lista, diremos cliente ponto db agora queremos o amostra do banco de dados do airbnb e, dentro desse banco de dados, precisamos acessar a coleção chamada listagens e avaliações dessa coleção podemos chamar de inserir um passaremos a nova listagem para inserir um inserir um inserirá um único documento na coleção o único parâmetro necessário é o novo documento que Wi será inserido se o nosso novo documento não contiver o campo de ID de sublinhado, o driver do MongoDB criará automaticamente um ID para o documento super útil, então é tudo o que precisamos passar para inserir um, queremos aguardar os resultados, então adicionarei um peso aqui vamos atribuir os resultados que voltam para uma constante chamada resultado e, finalmente, vamos registrar o ID do documento recém-inserido então eu direi console.log nova listagem criada com o seguinte resultado de ID ponto ID inserido tudo bem é tudo o que temos para fazer para essa função, então voltarei para o principal tentará eliminar essa chamada para listar bancos de dados e, em vez disso, chamará a criação de lista e passará o cliente conectado também vai criar um objeto para a nova listagem então eu só estou vai definir alguns campos para esta listagem vamos dar um nome a ela que tal um Loft Encantador e para o resumo vamos definir um Loft Encantador em paris para quartos para um para bancos, também definiremos para um, certifique-se de aguardar o resultados da criação de lista tudo bem deixe-me salvar isso e vamos executá-la e podemos ver que criamos uma nova lista bom agora observe que não incluí um campo chamado ID de sublinhado no documento, então o driver do MongoDB criou automaticamente um ID de sublinhado para nós, tudo bem, então agora sabemos criar um único documento às vezes você vai querer inserir mais de um documento de cada vez para poder optar por chamar repetidamente a inserção de um documento indefinidamente o problema é que, dependendo de como você estruturado seu código, você pode acabar esperando que cada operação de inserção retorne antes de iniciar a próxima e isso pode resultar em código lento que alguém quer isso, então em vez de chamar de inserir um eu poderia chamar de inserir muitos inserir muitos inserirá uma array de documentos em sua coleção inserir muitos tem um parâmetro necessário e esse é um array de documentos que devem ser inseridos vamos escrever uma função para criar vários anúncios do airbnb então eu direi que a função cria vários anúncios e vamos fazer disso um função assíncrona para parâmetros vamos passar o cliente e uma array de novas listagens agora o dentro dessa função vai ser muito semelhante ao que fizemos na função anterior, então diremos acesse o banco de dados de amostra do airbnb e as listagens e coleções de avaliações e, em vez de chamar de inserção um, vamos chamar de inserção de dinheiro e passaremos as novas listagens para inserir muitos, vamos atribuir os resultados a uma constante nomeada results e, em seguida, vamos apenas registrar quantas listagens foram inseridas também as ids dos novos documentos então direi console.log result.insertedcount são quantas novas listagens criadas com as seguintes ids e então vamos apenas registrar essas ids então eu direi console ponto log result ponto ids inseridos vamos chamar essa função então, começando a voltar ao principal, vamos nos livre dessa chamada para criar uma listagem diremos para aguardar crie várias listagens e passarei o cliente agora preparei algumas listagens para inserir, então só vamos colá-las aqui para que você não h ave para me observar digitá-las agora observe que todos os documentos não têm os mesmos campos, o que está perfeitamente bem, estou supondo que aqueles de Vocês que vêm do mundo dos bancos de dados relacionais acharão isso incrivelmente difícil, mas realmente ficará bem quando usarem o MongoDB você tem muita flexibilidade na forma de estruturar seus documentos, portanto, se mais tarde decidir que deseja adicionar regras de validação de esquema para garantir que seus documentos tenham uma estrutura específica, você pode bem deixar-me salvar isso e vamos executá-la tudo bem, podemos ver que três novas listagens foram criadas e temos uma lista de suas IDs que funcionou para que cuide do c em CRUD , vamos passar à nossa leitura, então vamos começar consultando uma listagem do airbnb na coleção de listagens e avaliações por nome vamos criar uma função chamado encontre uma listagem por nome e vamos fazer dessa uma função assíncrona para os parâmetros vamos usar o cliente e o nome da listagem que queremos encontrar tudo bem vamos escrever nossa query então diremos cliente dot db amostra airbnb listagens e avaliações da coleção dot find on find an retornará o primeiro documento que corresponde à query fornecida mesmo se mais de um documento corresponder à query apenas um documento será retornado find um tiver apenas um parâmetro necessário e isso é uma query do objeto de tipo o objeto de consulta pode conter zero ou mais propriedades que o MongoDB usará para localizar um documento na coleção se você quiser consultar todos os documentos em uma coleção sem restringir seus resultados de qualquer forma, você pode simplesmente enviar um objeto vazio, pois queremos para o Atlas Search um anúncio do airbnb com um nome específico vamos incluir o campo de nome no objeto de query que passamos para encontrar um, então definiremos o nome do anúncio aqui e vamos aguardar esse resultado e vamos armazenar os resultados em uma constante chamada resultado dependendo do nome passado podemos ou não obter um resultado, então se obtermos um resultado vamos registrar encontrou uma listagem na coleção com o nome nome da listagem e, em seguida, vamos registrar o resultado, caso contrário não obtemos um resultado, então diremos console.log nenhuma lista encontrada com o nome nome da lista, então vamos chamar essa função de volta para a principal eu estou vai excluir esta chamada para criar vários anúncios em vez disso, eu direi para aguardarem encontre um anúncio por nome e passarei o cliente e o nome infinitos modos de exibição agora este é um dos documentos que criei um minuto atrás quando chamei para criar dinheiro então deixe-me salvar isto arquivo limpar o terminal e executar o script e lá está nós podemos ver nosso documento para visualizações infinitas então agora você sabe como executar query de um documento vamos discutir como executar query de vários documentos de uma só vez vamos dizer que queremos Atlas Search para todos anúncios do Airbnb que têm um número mínimo de quartos e bancos, então vamos criar uma função vamos chamá-la de encontrar anúncios com um mínimo de quartos de trabalho e avaliações mais recentes uau, tudo bem, esse é um nome de função muito longo provavelmente poderíamos ser mais concisos, mas tudo bem em continuar, vamos fazer isto uma função assíncrona para parâmetros, como sempre, vamos pegar um cliente agora, na verdade, precisamos de vários outros parâmetros, então vamos usar a desestruturação, então queremos definir um número mínimo de quartos e definiremos o padrão para zero número mínimo de bancos novamente vamos definir o padrão como zero e o número máximo de resultados, e definiremos isso como números máximos de salvamento inteiro. Então, como vamos encontrar vários documentos que podemos usar para encontrar um o primeiro parâmetro para encontrar é a query objeto você pode enviar de zero a muitas propriedades dentro do objeto de consulta, então vamos começar a criar nossa consulta, então começaremos como sempre usamos cliente dot db amostra airbnb listagens de coleção de pontos e avaliações dot find, sabemos que queremos verificar se as listagens têm um número mínimo de quartos, então diremos que os quartos são maiores ou iguais ao número mínimo de quartos lembre-se que é o nosso argumento de função e vamos fazer a mesma coisa para os bancos diremos que os quartos são maiores ou iguais ao número mínimo de ba então aqui estou usando o dólar gte, que significa maior ou igual a, então só preciso que você esteja ciente de que o MongoDB fornece uma variedade de outros operadores de consulta de comparação que você pode usar em suas consultas então confira a documentação oficial para saber mais detalhes sobre esses operadores tudo bem então essa query vai retornar um cursor um cursor permite percorrer o conjunto de resultados de uma query então vamos chamar os resultados dessa query como um cursor chamado constante você pode optar por usar as funções do cursor para modificar quais documentos são incluídos nos resultados, por exemplo, digamos que queremos classificar nossos resultados de forma que aqueles com as avaliações mais recentes sejam retornados primeiro para que eu possa optar por classificar por última avaliação em ordem decrescente, que é o menos um para que essa consulta corresponda realmente 192 documentos na coleção não quiser processar muitos resultados dentro do meu script em vez disso, querer limitar os resultados a um número menor de documentos para que, no final dessa query, eu possa encadear limite como o nome im o limite de camadas definirá o limite para o cursor agora que tenho esse cursor posso optar por iterar sobre esse cursor para obter os resultados um a um2 função de array o resultado é uma promessa, então adicionarei um peso aqui e depois armazenarei isso em uma constante chamada resultado não precisa me ver digitá-lo o que ele está fazendo é imprimir um resumo de cada lista vamos chamar essa função então, retornando à principal, nos livremos dessa chamada e digamos uma lista de busca de peso com o mínimo de quartos de trabalho e as análises mais recentes e passarão o cliente e, em seguida, definirão o número mínimo de quartos para quatro, o número mínimo de bancos para dois e o número máximo de resultados, vamos fazer 5. então deixe-me salvar o arquivo eu estou limpando o terminal e vamos executar o script tudo bem eu estou expandindo o terminal e podemos ver cinco listagens que cada uma tem pelo menos quatro quartos e dois quartos muito bem estamos na metade das operações CRUD estamos fazendo tudo bem agora que sabemos criar e ler documentos, vamos descobrir como atualizá-los vamos começar atualizando uma única listagem do airbnb na collection de listagens e avaliações podemos atualizar um único documento por chamando atualização atualização um tem dois parâmetros necessários o primeiro parâmetro necessário é o filtro que é usado para selecionar o documento para atualizar você pode pensar no filtro como essencialmente o mesmo que o parâmetro de query que usamos para encontrar um para a Pesquisa Atlas de um determinado documento, você pode incluir zero propriedades no filtro para Atlas Search para todos os documentos na coleção ou pode incluir uma ou mais propriedades para restringir sua Atlas Search agora a outra necessária param são as operações de atualização a serem aplicadas ao documento O MongoDB tem uma variedade de operadores de atualização que você pode usar, como increment set unset e vários outros, confira a documentação oficial para obter uma lista completa dos operadores de atualização e suas descrições update 1 atualizará o primeiro documento que corresponder à query fornecida, mesmo que mais de um documento corresponda à query, apenas um documento será atualizado, então vamos criar uma função que atualizará uma listagem do airbnb com um nome específico então vamos nomeá-la atualizar a listagem por nome como de costume, vamos fazer uma função assíncrona e para parâmetros vamos usar o cliente o nome da lista e a lista atualizada então vamos escrever nossa query diremos cliente ponto db amostra airbnb dot collection listagens e avaliações dot update um agora lembre-se precisamos passar dois argumentos, então o primeiro é o filtro, queremos uma query por nome, então filtraremos onde o nome for igual ao nome da lista para o segundo argumento que precisamos passar a operação de atualização ção que usaremos o conjunto de dólares e passaremos o conjunto de listagens atualizado definirá novos valores para campos novos ou existentes no documento que estamos atualizando o documento que passamos está definido não substituirá o documento existente, então todos os campos que forem parte do documento original, mas não parte do documento que passamos para definir permanecerá, pois estão bem, então parece bom vamos aguardar os resultados e vamos atribuí-los a um resultado nomeado constante tudo bem última coisa que queremos fazer nesta função é registrar os resultados, vamos registrar quantos documentos foram atualizados, então diremos console.log result dot modified count documents foram atualizados tudo bem, vamos testar isso, então vamos voltar para o principal; o cliente e eu queremos atualizar o infinito e visualizações a propriedade com a qual continuo trabalhando e acha que vamos atualizá-la para que ela tenha seis quartos e oito camas tudo bem, parece bom, vamos executá-la então deixe-me limpar meu terminal e vamos executar o script muito bem podemos ver que um documento correspondia aos critérios de query e um documento foi atualizado agora vamos dedicar alguns minutos para falar sobre upsert upsert é uma das opções que você pode optar por passar para atualizar um upsert é um recurso super útil que permite que você atualize um documento se ele existir ou insira um documento se não existir, por exemplo, digamos que você queira garantir que um anúncio do airbnb com um nome específico tenha um determinado número de quartos e bancos se não tivesse upsert você primeiro usaria encontrar um para verificar se o documento existiu se o documento existisse você usaria a atualização 1 para atualizar o documento se o documento não existisse você usaria inserir um para criar o documento quando você usar upsert você pode combinar tudo isso funcionalidade em um único comando então l e deixe-me mostrar como isso funciona criar uma função chamada upsert listagem por nome para params será o mesmo que nossa última função um cliente o nome da listagem e a listagem atualizada e vamos tornar essa função assíncrona essa query vai ser muito semelhante ao que terminei de escrever, então, como qualquer grande desenvolvedor faz, eu apenas copiei e colei, então copiarei essa query e a colarei em minha nova função a única coisa que preciso mudar é que estou passando um parâmetro opcional Irei definir upsert como verdadeiro agora vamos adicionar alguns registros vamos imprimir quantos documentos correspondem ao nosso filtro, então diremos console.log result.matchedcount documentos corresponderam aos critérios de query, então vamos verifique se algo foi alterado, diremos se results.upsertedcount é maior que zero console.log um documento foi inserido com o ID ID dot abserted já que estamos chamando a atualização um que sabemos que apenas um documento será inserido, caso contrário será registro quantos documentos foram atualizados, então diremos resultado do registro de pontos do console os documentos de contagem modificados foram atualizados parece bom, vamos tentar de volta ao Maine substituiremos essa chamada pela nossa nova, então vamos dizer se não tivermos certeza se um anúncio chamado casa de campo está em nossa coleção ou, se existir, pode conter todos os dados de qualquer forma. queremos garantir que a listagem existente em nossa coleção tenha os dados mais atualizados, então diremos para aguardar upsert listagem por nome e passar ao cliente agora o nome de a listagem que eu gostaria de alterar para o documento que eu gostaria de upsert vai definir o nome para Cosy campos de campo também definirão o número de quartos para 2 e o número de casas de campo para um então vamos salvar o arquivo eu estou limpando o terminal e executando o script muito bem, podemos ver zero documentos que correspondam aos critérios de consulta, então um documento foi inserido agora vamos dizer que os proprietários fazem reformas e adicionam um banco extra para que eu possa usar esta mesma chamada de função e apenas atualizar os bancos para dois, então deixe-me fazer isso um . momento, neste caso, você pode usar a atualização de muitos agora, como a atualização 1, a atualização de muitos exige que você passe um filtro de objeto de tipo e uma atualização do objeto de tipo você pode optar por incluir também opções e upsert é uma dessas opções vamos dizer que preciso garantir que cada documento tenha um campo chamado tipo de propriedade vamos criar uma nova função chamada atualizar todos os anúncios para que tenham o tipo de propriedade como de costume vamos criar uma função assíncrona e, neste caso, só preciso de um parâmetro e esse é o cliente, vamos escrever uma query para atualizar qualquer listagem que não tenha um campo chamado tipo de propriedade, então direi cliente dot db amostra airbnb listagens de coleção de pontos e avaliações dot update many para nosso filtro verificaremos se o campo de tipo de propriedade existe, então diremos propa tipo rty existe é falso então onde o campo não existe, então precisamos passar nossa operação de atualização então usaremos o conjunto de dólares como fizemos anteriormente e definiremos o tipo de propriedade como atualização desconhecida muitos retornarão uma promessa então vamos aguardar o results e, em seguida, vamos atribuí-los a uma constante chamada result, vamos apenas adicionar alguns registros, então vamos registrar quantos documentos correspondem ao nosso filtro, então diremos console.log results.matchedcount documentos corresponderam aos critérios de query e então vamos registrar quantos documentos foram atualizado, então diremos que o resultado do registro de pontos do console foi ou foram atualizados, então vamos tentar voltar para o principal diremos aguardar atualização de todas as listagens para ter o tipo de propriedade e passaremos o cliente então vamos salvar estou vai limpar meu terminal e vamos executar o script bem, podemos ver que seis documentos não tinham o campo de tipo de propriedade definido e seis documentos foram atualizados agora todos os documentos em nossa coleção têm o campo de tipo de propriedade definido então, se pegarmos a dando uma olhada na coleção, podemos ver que o documento de cachecol que criei no início deste vídeo agora tem o tipo de propriedade definido como listagens desconhecidas que continham um tipo de propriedade antes de chamarmos de atualização muitas elas permanecem como estavam, por exemplo, a listagem dúplice moderna e espelhada da cidade ainda tem tipo de propriedade definido como apartamento então esses são os fundamentos da atualização de documentos no MongoDB tudo bem agora que sabemos como criar documentos de leitura e atualização vamos lidar com a operação CRUD final excluir vamos começar excluindo uma única listagem de airbnb na coleção de listagens e avaliações podemos excluir um único documento chamando excluir1 15 2019 excluir um tem um parâmetro necessário um filtro do tipo objeto o filtro é usado para selecionar o documento a ser excluído você pode pensar no filtro é essencialmente o mesmo que o parâmetro de query que usamos em encontre um e o parâmetro de filtro que usamos na atualização um, você pode incluir zero propriedades no filtro para Pesquisar todos os documentos na coleção ou y Você pode incluir um ou mais propriedades e restringir sua Atlas Search excluir um excluirá o primeiro documento que corresponda à consulta fornecida mesmo que mais de um documento corresponda à consulta fornecida apenas um será excluído bem, então vamos criar uma função para excluir uma listagem do airbnb com um nome específico, então vamos nomear essa função excluir listagem por nome para parâmetros vamos usar o cliente e o nome da listagem que queremos excluir e vamos tornar isso uma função assíncrona para todos Github certo, vamos escrever nossa query nós vamos começar da mesma forma que sempre fazem e se você está achando lauren, você realmente deveria ter feito da collection uma constante para não ter que digitar isso toda vez que reconheço que isso foi um erro mas vamos manter esse padrão de qualquer maneira, então diremos cliente ponto db amostra airbnb lista de coleções de pontos e avaliações ponto delete um queremos excluir o documento em que o nome é igual ao nome da listagem delete um retorna uma promessa então vamos adicionar uma espera aqui e depois vamos atribuir o resultado a uma constante nomeada deixe-me rolar de volta para o principal e vamos chamar a função de exclusão, então eu direi aguardo exclusão da listagem por nome que vamos passar o cliente e vamos excluir a listagem chamada cosy coagment então eu salvarei o arquivo para o qual vamos para limpar o terminal, executar o script e ver um documento foi excluído agora posso executar isso de novo e desta vez podemos ver que nenhum documento foi excluído, o que faz sentido, já que acabou de excluí-lo de modo que cobre excluir um às vezes você deseja excluir mais de um documento de cada vez nesse caso você pode usar excluir muitos como excluir um excluir muitos requer que você passe um filtro do tipo de objeto que você pode optar por incluir opções também digamos que queremos criar uma função que removerá documentos que não foram atualizados recentemente então vamos dizer que a função excluir listas raspagem anterior à data raspada antes dessa é a data que vamos usar, então vamos fazer dessa uma função assíncrona para parâmetros de usarmos esse cliente como sempre usamos e a data limite para documentos antigos que devem ser excluídos bem vamos escrever nossa query await client.db sample airbnb listagens e avaliações de dot collection dot delete many now queremos excluir documentos em que a última raspagem é menor que a data em que foi passada para a função, então exclua a exclusão e muitos retornam uma promessa, então vamos aguardar o resultado e vamos atribuir o resultado a uma constante chamada result a última coisa que vamos fazer nessa função é registrar quantos documentos foram excluídos, então diremos console.log result.deletedcount documentos foi ou foram excluídos agora mesmo Digamos que aguarde a exclusão de listagens raspadas antes da data nova data do cliente 2019 a 15. agora pela última vez neste vídeo vamos salvar o arquivo eu estou limpando o terminal e vamos executar o script tudo bem 606 documentos foram excluídos é muito mais fácil do que verificar manualmente documentos antigos e excluí-los e com isso temos encerrando os fundamentos da exclusão que abordamos muito hoje, vamos recapitular hoje mostrei como se conectar a um banco de dados MongoDB a partir de um script node.js e como recuperar uma lista de bancos de dados em seguida compartilhei como o MongoDB armazena dados em documentos e coleção então mostrei o básico sobre a criação da leitura, a atualização e a exclusão de dados se você quiser fazer referência ao material que abordei hoje no futuro confira a série de blogs que escrevi que aborda exatamente o que mostrei hoje também tenho um repositório do que contém Todo o código que mostrei a você hoje colocará os links de ambos na descrição abaixo se você quiser continuar aprendendo e espero que faça check-out do próximo vídeo desta série em que cobrirá a aggregation fra trabalho agora que você sabe o nome estrutura de agregação ele pode parecer um pouco temerário, mas é superforte e pode mudar o jogo quando você começar a trabalhar com o MongoDB não vai querer perder este vídeo que será lançado em breve e direi um link para ele na descrição abaixo quando estiver ativo, tudo bem, é tudo o que tenho para você hoje, muito obrigado por assistir, espero que curta usar o MongoDB para 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
Tutorial

Criar um backend de gerenciamento de mídia escalável: integrando Node.js, Armazenamento de blobs Azure e MongoDB


Nov 05, 2024 | 10 min read
Início rápido

Criando AI multiagentes de IA com BuildSship e MongoDB


Nov 18, 2024 | 3 min read
exemplo de código

Gestão de revistas


Sep 11, 2024 | 0 min read
Tutorial

Introdução ao MongoDB Atlas, NodeJS e o Azure App Service


Apr 02, 2024 | 5 min read