Dominando O Mongodb 7.0
()
Sobre este e-book
Leia mais títulos de Jideon F Marques
Posições Sexuais Tântricas Nota: 0 de 5 estrelas0 notasManual De Tdah Para Adultos Nota: 0 de 5 estrelas0 notasKama Sutra: Guia Ilustrado De Posições Sexuais Para Iniciantes E Avançados Nota: 0 de 5 estrelas0 notasTécnicas De Sexo Tântrico Nota: 0 de 5 estrelas0 notasFísica Quântica Para Iniciantes Nota: 5 de 5 estrelas5/5A Bíblia Do Swing Trader Nota: 0 de 5 estrelas0 notasAumento Peniano Nota: 0 de 5 estrelas0 notasO Guia Completo Para Bonecos De Crochê E Animais Nota: 0 de 5 estrelas0 notasAprenda Fazer Licores Deliciosos E Lucre Muito Com Vendas Online Nota: 0 de 5 estrelas0 notasPsicologia Negra E Manipulação Nota: 0 de 5 estrelas0 notasDecoração De Bolos Para Iniciantes: Um Guia Passo A Passo Para Decorar Como Um Profissional Nota: 0 de 5 estrelas0 notasMarketing Do Instagram (guia Para Iniciantes 2023) Nota: 0 de 5 estrelas0 notasDay Trading - Estratégias De Negociação Nota: 0 de 5 estrelas0 notasReceitas De Café Gelado Nota: 0 de 5 estrelas0 notasDicas De Sexo Tântrico; Todas As Dicas Que Você Precisa Saber Nota: 0 de 5 estrelas0 notasAdobe Photoshop 2022 Para Iniciantes Nota: 0 de 5 estrelas0 notasO Guia Das Técnicas Do Reiki - Cura Reiki Para Iniciantes Curando Mais De 100 Doenças Nota: 0 de 5 estrelas0 notasSaxofone Para Iniciantes Nota: 0 de 5 estrelas0 notasReceitas De Iogurte Grego 40 Ótimas Receitas Nota: 0 de 5 estrelas0 notasFeitiços De Amor Nota: 0 de 5 estrelas0 notasExcel De Zero Para Especialista Nota: 0 de 5 estrelas0 notasExcel 2023 Power Pivot & Power Query Nota: 0 de 5 estrelas0 notasLivro De Receitas De Pão Delicioso Nota: 0 de 5 estrelas0 notasGastrite Um Guia Completo De Cura Nota: 0 de 5 estrelas0 notas
Relacionado a Dominando O Mongodb 7.0
Ebooks relacionados
Fundamentos Básicos Do Asp.net Nota: 0 de 5 estrelas0 notasO Curso De Codificação C++ Nota: 0 de 5 estrelas0 notasSpring MVC: Domine o principal framework web Java Nota: 0 de 5 estrelas0 notasHtml5 E Css3 Com Farinha E Pimenta Nota: 0 de 5 estrelas0 notasMeteor: Criando aplicações web real-time com JavaScript Nota: 5 de 5 estrelas5/5VRaptor: Desenvolvimento ágil para web com Java Nota: 0 de 5 estrelas0 notasBíblia Sobre Redes De Computadores: [3 Em 1] Nota: 0 de 5 estrelas0 notasPrimeiros passos com Node.js Nota: 0 de 5 estrelas0 notasVisual Basic 6.0 Nota: 0 de 5 estrelas0 notasIniciando Com O Zend Framework 2 Nota: 0 de 5 estrelas0 notasJPA Eficaz: As melhores práticas de persistência de dados em Java Nota: 0 de 5 estrelas0 notasAplicações Java para a web com JSF e JPA Nota: 0 de 5 estrelas0 notasRefatorando com padrões de projeto: Um guia em Java Nota: 0 de 5 estrelas0 notasProgramação em JavaScript Nota: 3 de 5 estrelas3/5MongoDB: Construa novas aplicações com novas tecnologias Nota: 0 de 5 estrelas0 notasThree.js Nota: 0 de 5 estrelas0 notasConsumindo a API do Zabbix com Python Nota: 0 de 5 estrelas0 notasSOA aplicado: Integrando com web services e além Nota: 0 de 5 estrelas0 notasZend Expressive e PHP 7: Uma união poderosa para a criação de APIs Nota: 0 de 5 estrelas0 notasMySQL: Comece com o principal banco de dados open source do mercado Nota: 4 de 5 estrelas4/5Mongodb - O Banco De Dados Nosql Mais Utilizado Da Atualidade Nota: 0 de 5 estrelas0 notasConstruindo APIs REST com Node.js: Caio Ribeiro Pereira Nota: 5 de 5 estrelas5/5Como Ser Um Desenvolvedor Web Nota: 0 de 5 estrelas0 notasLinguagens De Programação Em Inteligência Artificial Nota: 0 de 5 estrelas0 notasCurso De Joomla Nota: 0 de 5 estrelas0 notasJavaScript: Um Guia para Aprender a Linguagem de Programação JavaScript Nota: 5 de 5 estrelas5/5Thoughtworks antologia Brasil: Histórias de aprendizado e inovação Nota: 0 de 5 estrelas0 notasJavascript Nota: 0 de 5 estrelas0 notasAprendendo Airtable Nota: 0 de 5 estrelas0 notasAzure: Coloque suas plataformas e serviços no cloud Nota: 0 de 5 estrelas0 notas
Aplicativos e Software para você
Desenvolvedor De Back-end Em 30 Dias Nota: 0 de 5 estrelas0 notasE-book Microsoft Excel 2010 Nota: 0 de 5 estrelas0 notasChatgpt O Roteiro Do Milionário Nota: 0 de 5 estrelas0 notasProgramação Python Ilustrada Para Iniciantes E Intermediários: Abordagem “aprenda Fazendo” – Passo A Passo Nota: 0 de 5 estrelas0 notasAdobe Photoshop 2022 Para Iniciantes Nota: 0 de 5 estrelas0 notasRobótica Móvel Com Arduino Nota: 0 de 5 estrelas0 notasGuia De Estilo E Cores Nota: 0 de 5 estrelas0 notasLinux Nota: 0 de 5 estrelas0 notasCurso Intensivo De Python Nota: 0 de 5 estrelas0 notasLinguagens De Programação Em Inteligência Artificial Nota: 0 de 5 estrelas0 notasScratch: Um jeito divertido de aprender programação Nota: 0 de 5 estrelas0 notasComo Criar Um Ebook De Alta Conversão Nota: 4 de 5 estrelas4/5Microsoft Windows 10 Nota: 5 de 5 estrelas5/5Java O Guia Completo Nota: 0 de 5 estrelas0 notasAprendendo Ciência De Dados Nota: 0 de 5 estrelas0 notasMicrosoft Office 365 Nota: 0 de 5 estrelas0 notasCurso Intensivo De Desenvolvimento Frontend Nota: 0 de 5 estrelas0 notasDescomplicado Passo A Passo | Tutoial Anime Studio Nota: 0 de 5 estrelas0 notasCódigo Limpo Em Php Nota: 0 de 5 estrelas0 notasExcel Definitivo Nota: 0 de 5 estrelas0 notasPacote Microsoft Office Capacitação Nota: 0 de 5 estrelas0 notasCurso Pdv Passo A Passo Delphi Com Firedac Nota: 0 de 5 estrelas0 notasCurso De Edição De Vídeo + Adobe Premiere Pro Nota: 0 de 5 estrelas0 notasApostila Noções De Informática Nota: 0 de 5 estrelas0 notasExcel 2022 O Tutorial Completo Para Iniciantes E Especialistas Nota: 0 de 5 estrelas0 notasCurso Relâmpago De Informática Nota: 0 de 5 estrelas0 notasExcel De Zero Para Especialista Nota: 0 de 5 estrelas0 notasPhotoshop para Iniciantes Nota: 0 de 5 estrelas0 notasSeo Na Prática Nota: 0 de 5 estrelas0 notasRevit passo a passo volume I Nota: 4 de 5 estrelas4/5
Avaliações de Dominando O Mongodb 7.0
0 avaliação0 avaliação
Pré-visualização do livro
Dominando O Mongodb 7.0 - Jideon F Marques
Dominando o MongoDB 7.0
Dominando o MongoDB 7.0
Alcance a excelência em dados liberando todo o
potencial do MongoDB
POR: Jideon Marques
Direitos autorais © 2024 Jideon Marques. Todos os direitos reservados.
Licença de direitos autorais
O conteúdo contido neste livro não pode ser reproduzido, duplicado ou transmitido sem permissão direta por escrito do autor ou do editor.
Sob nenhuma circunstância qualquer culpa ou responsabilidade legal será responsabilizada contra o editor, ou autor, por quaisquer danos, reparações ou perdas monetárias devido às informações contidas neste livro, seja direta ou indiretamente.
Notícia legal:
Este livro é protegido por direitos autorais. É apenas para uso pessoal. Você não pode alterar, distribuir, vender, usar, citar ou parafrasear qualquer parte ou o conteúdo deste livro sem o consentimento do autor ou editor.
Aviso de isenção de responsabilidade:
Observe que as informações contidas neste documento são apenas para fins educacionais e de entretenimento. Todos os esforços foram realizados para apresentar informações precisas, atualizadas, confiáveis e completas. Nenhuma garantia de qualquer tipo é declarada ou implícita. Os leitores reconhecem que o autor não está envolvido na prestação de aconselhamento jurídico, financeiro, médico ou profissional. O conteúdo deste livro foi derivado de diversas fontes. Consulte um profissional licenciado antes de tentar qualquer técnica descrita neste livro.
Ao ler este documento, o leitor concorda que sob nenhuma circunstância o autor é responsável por quaisquer perdas, diretas ou indiretas, que sejam incorridas como resultado do uso das informações contidas neste documento, incluindo, mas não limitado a, erros, omissões ou imprecisões.
• Índice
• Prefácio
• Capítulo 1: Introdução ao MongoDB
o Quem usa o MongoDB?
o Por que os desenvolvedores amam o MongoDB?
o Eficiência da complexidade inerente aos bancos de dados MongoDB
▪ Como isso é possível?
o Resumo
• Capítulo 2: A Arquitetura MongoDB
o Replicação vs fragmentação
o Replicação
▪ Eleições de conjunto de réplicas
▪ Oplog do conjunto de réplicas
▪ Arquiteturas de implantação de conjunto de réplicas
▪ Escreva preocupação
▪ Preferência de leitura
▪ Leia a preocupação
▪ Métodos de replicação
o Fragmentação
▪ Por que você precisa de fragmentação?
▪ Elementos-chave de um cluster fragmentado
▪ Microfragmentação
▪ Vantagens da fragmentação
▪ Distribuição de dados
▪ Pedaços
▪ Administração de pedaços
▪ Consultando dados fragmentados
▪ Métodos de fragmentação
o Novos recursos de cluster fragmentado no MongoDB 7.0
▪ Comandos do consultor de chave de fragmento
▪ Fusão automática
▪ Suporte de comando sem chaves de fragmento
o Resumo
• Capítulo 3: Ferramentas para Desenvolvedores
o Requerimentos técnicos
o Introdução às ferramentas do desenvolvedor
▪ Categorias de ferramentas de desenvolvedor
o Shell do MongoDB
▪ Instalação
▪ Conectando-se a uma implantação do MongoDB usando mongosh
▪ mongosh vs shell legado
▪ Principais recursos do mongosh
▪ Casos de uso para mongosh
▪ Melhores práticas para usar o mongosh
o CLI do MongoDB
▪ Instalação
▪ Configuração
▪ Trabalhando com a CLI do MongoDB
▪ autenticação mongocli
▪ Principais recursos da CLI do MongoDB
▪ Casos de uso para CLI do MongoDB
▪ Melhores práticas para CLI do MongoDB
o Bússola MongoDB
▪ Instalação
▪ Configuração
▪ Explore dados visualmente usando o Compass
▪ Principais recursos do MongoDB Compass
▪ Casos de uso do MongoDB Compass
▪ Melhores práticas para MongoDB Compass
o MongoDB para código VS
▪ Instalação
▪ Explore dados usando o Playground
▪ Use o Terraform para criar um cluster Atlas
▪ Características principais
▪ Casos de uso da extensão MongoDB para VS Code
▪ Melhores práticas para a extensão MongoDB para VS Code
o Resumo
• Capítulo 4: Conectando-se ao MongoDB
o Métodos de conexão
▪ Conectando usando Ruby
▪ Conectando-se usando Python
▪ Conectando usando PHP
▪ Conectando-se usando Node.js
▪ Conectando usando TypeScript
o Resumo
• Capítulo 5: Operações CRUD e consultas básicas
o Requerimentos técnicos
o Operações CRUD do MongoDB
▪ CRUD usando mongosh
▪ Script para mongosh
▪ Inserções em lote usando mongosh
▪ Operações em lote usando mongosh
o CRUD usando o driver Ruby
▪ Conectando-se a um banco de dados
▪ Criando documentos
▪ Lendo dados
▪ Encadeamento de operações em find()
▪ Operações aninhadas
▪ Operações em lote
▪ ODM mongóide
o CRUD usando o driver Python
▪ Inserindo documentos
▪ Encontrando documentos
▪ Atualizando documentos
▪ Excluindo documentos
o Expressões regulares
o Administração
▪ currentOp() e killOp()
▪ colMod
o Acesso seguro ao MongoDB
▪ Autenticação e autorização
o API estável do MongoDB
o Resumo
• Capítulo 6: Projeto de Esquema e Modelagem de Dados
o Design de esquema para bancos de dados relacionais
▪ Formas normais
o Design de esquema para MongoDB
o Modelagem de dados no MongoDB
▪ Estrutura do documento
▪ Dados incorporados
▪ Referências
▪ Desnormalização
▪ BSON e seus tipos de dados
o Considerações de design e práticas recomendadas para modelagem
MongoDB
▪ Proporção leitura-gravação
o Padrões de design e design de esquema
o Resumo
• Capítulo 7: Consultas avançadas no MongoDB
o Introdução à estrutura de agregação
o Benefícios da agregação no MongoDB
o Estágios de agregação
o Técnicas de consulta
▪ Operadores lógicos e de comparação
▪ Consulta e manipulação de array
▪ Técnicas de projeção de campo array
o Índices e otimização de consultas
▪ Benefícios do uso de índices
▪ Tipos de índice
o Recursos geoespaciais no MongoDB
▪ Objetos GeoJSON
▪ Índices geoespaciais
▪ Operadores geoespaciais
o Resumo
• Capítulo 8: Agregação
o Requerimentos técnicos
o Estrutura de agregação MongoDB
▪ Modularidade e composição
▪ Estágios
▪ Expressões de agregação
o Operadores básicos de agregação
▪ Operadores bit a bit em agregação
▪ Operadores de expressão de matriz
▪ Os operadores de array power
: $map e $reduce
▪ Outros tipos de agregações
o Melhores Práticas
▪ Modularidade de código
▪ Otimização de consulta
▪ Estágios de streaming e bloqueio de um pipeline
▪ Considerações sobre cluster fragmentado
o Resumo
• Capítulo 9: Transações ACID multidocumentos
o Por que as transações são úteis?
o Propriedades ÁCIDA
▪ Atomicidade
▪ Consistência
▪ Isolamento
▪ Durabilidade
o Implementação do ACID no MongoDB
▪ Ler e escrever preocupações em transações
▪ Limitações de transação
o Melhores Práticas
o Resumo
• Capítulo 10: Otimização do Índice
o Introdução aos índices
▪ Criando um índice
o Tipos de índice
▪ Índices de campo único e indexação de documentos incorporados
▪ Índices compostos
▪ Índices multichave
▪ Consultas cobertas
▪ Índice hash
▪ Índices de texto
▪ Índices de pesquisa do Atlas
▪ Índices TTL
▪ Índices parciais
▪ Índices geoespaciais
▪ Índices curinga
▪ Índices ocultos
▪ Índices curinga compostos
o Melhores práticas para otimização de índice
o Resumo
• Capítulo 11: MongoDB Atlas: potencializando o futuro das plataformas de dados
para desenvolvedores
o Compreendendo o MongoDB Atlas como um banco de dados como serviço
▪ Banco de dados hospedado
▪ Seguro por padrão
▪ Monitoramento e alertas
▪ Fazer backup, restaurar e arquivar
▪ Automação
o Plataforma de dados para desenvolvedores Atlas
o Atlas Vector Search e seu papel em aplicações de IA
▪ O que envolve a pesquisa vetorial?
▪ O que é a Pesquisa vetorial do Atlas?
▪ Pesquisa semântica e vetores
▪ Incorporações KNN, ANN e vetoriais
▪ Como usar a Pesquisa vetorial do Atlas
▪ Pesquisa Atlas
o Serviços de aplicativos Atlas
▪ O que são os serviços de aplicativos Atlas?
▪ Características principais
▪ Como usar os serviços de aplicativos Atlas
o API de dados Atlas
▪ Segurança e autorização
▪ Casos de uso
▪ Como usar a API de dados Atlas
o Lago de dados do Atlas
▪ Armazenamento e otimização de dados
▪ Como usar o Atlas Data Lake
o Federação de Dados Atlas
▪ Processamento de dados
▪ Características principais
▪ Como usar a Federação de Dados Atlas
o Processamento do Atlas Stream (visualização)
▪ Mecanismo operacional
▪ Características principais
▪ Configurando um processador de stream
o Interface SQL do Atlas
▪ Como usar a interface SQL do Atlas
o Gráficos do Atlas MongoDB
▪ Como usar gráficos Atlas
o Integrações operacionais: o operador Atlas Kubernetes
▪ O que é o operador Atlas Kubernetes?
▪ Como usar o operador Atlas Kubernetes
o CLI do Atlas
▪ Como usar a CLI do Atlas
▪ Capacidades do Atlas CLI
o Resumo
• Capítulo 12: Monitoramento e Backup no MongoDB
o Monitoramento no MongoDB
▪ Monitorando clusters
▪ Por que monitorar no MongoDB?
o O que você deve monitorar?
▪ Falha de página
▪ Memória residente
▪ Memória virtual e mapeada
▪ Conjunto de trabalho
▪ Rastreie o espaço livre em disco
▪ Monitorando a replicação
▪ Tamanho do registro
▪ Monitoramento de rede
▪ Cursores e conexões
▪ Métricas do documento
o Monitorando o uso de memória no WiredTiger
o Rastreando falhas de página
▪ Rastreando erros de árvore B
▪ E/S espere
▪ Ler e gravar filas
o Cálculos do conjunto de trabalho
▪ Por que o conjunto de trabalho é crucial?
▪ Estime o tamanho do conjunto de trabalho
▪ Importância dos índices no conjunto de trabalho
o Visão geral das ferramentas de relatórios do MongoDB
▪ Serviços de utilidade pública
▪ Comandos
o Visão geral das ferramentas de monitoramento hospedadas
▪ Backups de cluster
o Métodos de backup do MongoDB
▪ Soluções de backup baseadas em nuvem
▪ Soluções de backup locais
▪ Usando snapshots do sistema de arquivos para backups do MongoDB
▪ Requisitos de consistência
▪ Backups usando mongodump
▪ Fazendo backup com cp ou rsync
▪ Backup e restauração no EC2
▪ Backup com filas
▪ Backups incrementais
o Erros e armadilhas comuns no monitoramento e backup do MongoDB
o Resumo
• Capítulo 13: Introdução à Pesquisa Atlas
o Pesquisa do Atlas MongoDB
▪ Visão geral dos recursos
▪ Requisitos de versão para recursos do Atlas Search
▪ Arquitetura da Pesquisa Atlas
o Visão geral técnica dos índices do Atlas Search
▪ Criação e gerenciamento de índices
▪ Consultas de pesquisa do Atlas
▪ Operadores e coletores de consulta do Atlas Search
▪ Execução de consulta no Atlas Search
▪ Pontuação de relevância no Atlas Search
▪ Nós de pesquisa do Atlas
▪ Gerenciamento de índice do Atlas Search
▪ Análise de consulta de pesquisa
▪ Solução de erros do Atlas Search
o Apache Lucene
▪ Fundação de Software Apache
▪ Pesquisa Atlas e integração com Apache Lucene
o Resumo
• Capítulo 14: Integrando Aplicativos com MongoDB
o Requerimentos técnicos
o Integrando aplicações no MongoDB
o O operador MongoDB Kubernetes
▪ Instalação
▪ Implante e configure o MongoDB usando o operador Kubernetes
▪ O Operador Atlas Kubernetes
▪ O operador corporativo do Kubernetes
o Integrando Terraform com MongoDB
▪ Instalação
▪ Configurando um cluster MongoDB no Atlas usando Terraform
o Usando Vercel com MongoDB
▪ Construindo uma aplicação web com Vercel e MongoDB
▪ Configurando MongoDB Atlas com Vercel
▪ Desconectando a integração Vercel
o Integrando Datadog com MongoDB
▪ Configurando o Datadog
▪ Integrando MongoDB Atlas com Datadog
o Integrando Prometheus com MongoDB
▪ Configurando o Prometheus
▪ Integrando MongoDB Atlas com Prometheus
o Integrando webhooks com MongoDB
▪ Configurando webhooks com MongoDB
▪ Integrando o MongoDB com aplicativos de alerta
▪ Integrações Atlas para webhooks
▪ Integração com equipes Microsoft
o Integração PagerDuty
▪ Integração lenta
▪ Integração Splunk On-Call
▪ Integração do Opsgenie
▪ Integrando MongoDB com Confluent
▪ Integrando MongoDB com Postman
o Resumo
• Capítulo 15: Segurança
o Métodos de autenticação
▪ SCRAM
▪ x.509
▪ LDAP
▪ Cérbero
o Controle de acesso baseado em função (RBAC)
▪ Conhecer recursos, ações e funções
▪ Hierarquia de papéis
▪ Gerenciando funções
▪ Restrições de acesso
o Resumo
• Capítulo 16: Auditoria
o Auditoria e registro no MongoDB
o Tipos de eventos auditáveis
o Habilitar auditoria no MongoDB
▪ Filtros de auditoria
▪ Habilitar auditoria no MongoDB Atlas
▪ Visualizar e baixar logs do MongoDB
o Estudo de caso: O papel da auditoria na conformidade
o Solucionar problemas de auditoria no MongoDB
▪ Como identificar e resolver problemas de auditoria usando MongoDB
▪ Ferramentas para análise de registros de auditoria do MongoDB
o Resumo
• Capítulo 17: Criptografia
o Tipos de criptografia
▪ Certificados
o Criptografia em trânsito
▪ Como funciona
▪ Configurar TLS para MongoDB
o Criptografia em repouso
▪ Criptografia em repouso no MongoDB
▪ Configure a criptografia em repouso para MongoDB
o Criptografia do lado do cliente
▪ Quando o CSFLE é usado
▪ Como funciona
▪ Configurar o MongoDB
▪ Restrições e considerações
▪ Criptografia Consultável
o Resumo
• Índice
Quarta edição
domínio
MongoDB 7.0
Alcance a excelência em dados desbloqueando
todo o potencial do MongoDB
domínio
MongoDB 7.0
Alcance a excelência em dados desbloqueando todos os recursos
potencial do MongoDB
Marko Aleksendrić
Arek Borucki
Leandro Domingues
Malak Abu Hammad
Elie Hannouch
Rajesh Nair
Raquel Palmer
BIRMINGHAM-MUMBAI
eu
Dominando o MongoDB 7.0
Dominando o MongoDB 7.0
Quarta edição
Direitos autorais © 2024 Packt Publishing
Todos os direitos reservados. Nenhuma parte deste livro pode ser reproduzida, armazenada em um sistema de recuperação ou transmitida de qualquer forma ou por
qualquer meio, sem a permissão prévia por escrito do editor, exceto no caso de breves citações incorporadas em artigos críticos ou resenhas.
Todos os esforços foram feitos na preparação deste livro para garantir a precisão das informações apresentadas. Contudo, as informações contidas neste livro são vendidas sem garantia, expressa ou implícita. Nem o(s) autor(es), nem a Packt Publishing ou seus revendedores e distribuidores serão responsabilizados por quaisquer danos causados ou supostamente causados direta ou indiretamente por este livro.
A Packt Publishing tem se esforçado para fornecer informações de marcas registradas sobre todas as empresas e produtos mencionados neste livro através do uso apropriado de letras maiúsculas. No entanto, a Packt Publishing não pode garantir a exatidão desta informação.
Editor de aquisição: Sathya Mohan
Editor líder de desenvolvimento: Siddhant Jain
Editores de Desenvolvimento: Afzal Shaikh e Rhea Gangavkar Editores de desenvolvimento de conteúdo: Asma Khan e Saba Umme Salma Editor de cópia: Edição Safis
Coordenador do Projeto: Yash Basil
Revisor: Edição Safis
Designer de Produção: Deepak Chavan
Referência de produção: 1040124
Publicado por Packt Publishing Ltd.
Grosvenor House, 11 St Paul's Square, Birmingham, B3 1RB, Reino Unido.
ISBN 978-1-83546-047-4
www.packtpub.com
Dominando o MongoDB 7.0
iii
Colaboradores
Sobre os autores
Marko Aleksendrićé analista, ex-cientista e desenvolvedor web freelancer autodidata com mais de 20 anos de experiência. Marko é o autor do livro Modern Web Development with the FARM Stack, publicado pela Packt Publishing. Com grande interesse em desenvolvimento backend e frontend, ele é um usuário ávido do MongoDB nos últimos 15
anos em vários projetos relacionados à web e à análise de dados, tendo Python e JavaScript como suas principais ferramentas.
Arek Borucki, um reconhecido campeão do MongoDB e administrador de banco de dados certificado, trabalha com a tecnologia MongoDB desde 2016. Como principal engenheiro de banco de dados SRE, ele trabalha em estreita colaboração com tecnologias como MongoDB, Elasticsearch, PostgreSQL, Kafka, Kubernetes, Terraform, AWS e GCP. Sua vasta experiência inclui trabalhar com empresas renomadas como Amadeus, Deutsche Bank, IBM, Nokia e Beamery. Arek também é administrador e desenvolvedor certificado de Kubernetes, palestrante ativo em conferências internacionais e coautor de perguntas para o MongoDB
Exame DBA Associado.
Leandro Dominguesé campeão da comunidade MongoDB e MVP da plataforma de dados Microsoft
ex-aluno. Especializado em bancos de dados NoSQL, com foco em MongoDB, é autor de diversos artigos e também é palestrante e organizador de eventos e conferências. Além de lecionar MongoDB, foi professor em uma das maiores universidades do Brasil. Leandro é apaixonado por MongoDB e é mentor e inspiração para muitos desenvolvedores e administradores. Seus esforços tornam o MongoDB uma ferramenta mais compreensível para todos.
Malak Abu Hammadé gerente de engenharia de software experiente na Chain Reaction, com uma década de experiência em MongoDB. Ela conquistou um nicho não apenas no MongoDB, mas também em tecnologias essenciais de aplicativos da web. Além de conduzir vários workshops online e offline, Malak é um campeão do MongoDB e membro fundador da comunidade árabe do MongoDB. Sua visão para o MongoDB é um futuro com ênfase na localização em árabe, com o objetivo de preencher a lacuna entre a tecnologia e os dialetos regionais.
4
Dominando o MongoDB 7.0
Elie Hannouché engenheiro de software sênior e especialista em transformação digital.
Uma força motriz na indústria de tecnologia, ele tem um histórico comprovado de fornecimento de soluções robustas, escaláveis e impactantes. Como fundador de uma start-up, Elie combina a sua extensa experiência em engenharia com inovação estratégica para redefinir a forma como as empresas operam na era digital de hoje. Além de ser um campeão do MongoDB, Elie lidera as comunidades MongoDB, Google e CNCF no Líbano e
trabalha para capacitar aspirantes a profissionais de tecnologia, desmistificando conceitos complexos e inspirando uma nova geração de entusiastas da tecnologia.
Rajesh Nairé um profissional de software de Kerala, Índia, com mais de 12 anos de experiência trabalhando em diversas multinacionais. Ele iniciou sua carreira como administrador de banco de dados para diversas tecnologias RDBMS, incluindo Progress OpenEdge e MySQL. Rajesh também gerenciou enormes conjuntos de dados para aplicativos críticos executados no MongoDB como administrador do MongoDB por vários anos. Ele trabalhou em tecnologias como MongoDB, AWS, Java, Kafka, MySQL, Progress OpenEdge, shell script e administração Linux.
Rajesh atualmente mora em Amsterdã, Holanda, trabalhando como engenheiro de software sênior.
Raquel Palmeré o líder de produto para experiência de banco de dados de desenvolvedores e educação de desenvolvedores no MongoDB, supervisionando as bibliotecas de cliente do driver, documentação, integrações de estrutura e a Universidade MongoDB. Ela construiu aplicativos de exemplo para MongoDB em Java, PHP, Rust, Python, Node.js e Ruby. Rachelle ingressou no MongoDB em 2013 e anteriormente foi diretora da equipe de engenharia de serviços técnicos, criando e gerenciando a equipe que fornecia suporte e CloudOps ao MongoDB Atlas.
Sobre os revisores
Alex Bevilacquaé um defensor de padrões abertos, bem como um desenvolvedor de código aberto apaixonado e entusiasmado com mais de 10 anos de experiência. Ele é especialista em Ruby, Python, C#, Flash, Flex, JavaScript e outros. Ele é o autor de várias extensões e plug-ins do Redmine, sendo dois dos mais populares o Redmine Knowledgebase e o Redmine Dropbox Attachments. Atualmente, ele trabalha para uma empresa líder de marketing digital em Toronto, onde lida com iniciativas de automação de processos, coleta de dados e agregação.
Nicholas Cottrellusou o MongoDB como camada de dados para dezenas de projetos de desenvolvimento de software desde o MongoDB 2.0, muito antes de ingressar na empresa como engenheiro consultor em 2017. Ele agora ajuda os engenheiros de serviços técnicos a aprender sobre todos os aspectos do MongoDB para oferecer suporte a uma gama cada vez maior de clientes. casos de uso. Ele possui dupla cidadania australiana e sueca e mora na Normandia, França.
Dominando o MongoDB 7.0
v
Kenneth PJ Dyeré redator técnico sênior da equipe de documentação de servidor do MongoDB. Ele ingressou no MongoDB em 2021 e tem 12 anos de experiência na documentação de diversos sistemas de gerenciamento de conteúdo e banco de dados e
produtos relacionados. Com formação em escrita criativa e filologia, ele é apaixonado por linguagem, literatura e tecnologias que facilitam o desenvolvimento nessas áreas.
Ele mora em Austin, Texas.
Raiz de Corryé redator técnico sênior no MongoDB com mais de 15 anos de experiência.
Ela possui um MS
em Fatores Humanos em Design de Informação e é apaixonado por design inovador e colaboração.
Corry é especialista em documentação técnica para a equipe de nuvem do MongoDB. Ela cobre produtos como MongoDB Atlas CLI, adotando a abordagem Docs as Code. Ela acredita em testar a documentação para facilitar o uso. Corry mora em Princeton, Massachusetts, com sua família, e se envolve ativamente na comunidade local como presidente do Conselho Cultural de Princeton. Ela também gosta de aulas de jazz e balé, sua paixão desde criança.
John Williamsingressou no MongoDB em 2019 e co-lidera a equipe de documentação da nuvem. Sua equipe documenta o MongoDB Atlas e outras ferramentas empresariais. Ele tem mais de uma década de experiência escrevendo documentos para desenvolvedores.
Kailie Yuané redator técnico da equipe Cloud Enterprise e possui muito conhecimento sobre drivers MongoDB, Atlas Search e MongoDB Atlas Charts. Ao longo de seu tempo na empresa, ela trabalhou em vários recursos e se esforçou constantemente para oferecer uma ótima experiência aos usuários.
Kailie adora educar outras pessoas e gostaria de ver mais pessoas exercendo funções na área de tecnologia.
Ela deseja ajudar mais pessoas a entender melhor o campo da tecnologia, e é por isso que ela conseguiu um segundo emprego para lecionar em sua alma mater.
Nota do autor
Quando entrei no MongoDB, nossa equipe de engenharia de nuvem era incipiente, nossa equipe de engenharia de servidores cabia em uma única sala e havia apenas quatro gerentes de programa em toda a empresa. Na altura, lembro-me de ter pensado se ingressar numa start-up, mesmo que fosse bem financiada e com uma grande ideia, seria a coisa certa a fazer. Agora, depois de trabalhar com o MongoDB por quase 10 anos, ajudei-nos a crescer de uma grande ideia para um negócio de bilhões de dólares.
Era uma manhã muito fria de dezembro de 2013 quando entrei no MongoDB; Eu não sabia o que esperar. Eu certamente não poderia ter previsto os recursos que construiríamos, o IPO que eventualmente aconteceria, ou que um dia no futuro, meu trabalho seria definir a experiência do MongoDB para vocês – os desenvolvedores ao redor do mundo.
Tornar os bancos de dados mais claros e fáceis de usar para os desenvolvedores é uma necessidade e algo que estou constantemente quebrando a cabeça. E embora haja muitas coisas que diferenciam o MongoDB de outros bancos de dados, sempre nos concentramos na base de nossa singularidade: tornar mais fácil para você trabalhar com dados. Tudo que considero tedioso em trabalhar com dados, me esforço para tornar mais simples e acessível no MongoDB.
Esse é o objetivo. Essa é a missão. Essa é a estratégia.
Neste livro, você aprenderá tudo sobre o MongoDB: os principais recursos, os casos de uso, as melhores práticas e as novas funcionalidades que adicionamos no MongoDB 7.0. Você aprenderá dicas e truques com alguns dos campeões da comunidade e engenheiros mais ilustres. Como este é o nosso primeiro livro como empresa, queríamos torná-lo não apenas tecnicamente preciso, mas também emocionante!
Percebi que a melhor forma de aprender é explorando e transpondo a teoria para a prática.
Observe o código e vá além dele; acesse os exemplos do GitHub, clone-os e crie seus próprios aplicativos práticos. Você pode criar uma conta no MongoDB Atlas e hospedar um aplicativo de produção no nível gratuito.
Ao final deste livro, você terá as habilidades necessárias para criar um aplicativo que seja executado em grande escala.
Obrigado por ler e por usar o MongoDB.
Raquel Palmer
Diretor, Gerenciamento de Produto
MongoDB, Inc.
Prefácio
Mastering MongoDB 7.0 é um guia técnico para desenvolvedores e profissionais de banco de dados que desejam implementar funcionalidades avançadas e dominar operações complexas de banco de dados no MongoDB. Explorar a versão mais recente do MongoDB
ajuda a adquirir as habilidades necessárias para criar aplicativos eficientes, seguros e de alto desempenho usando o MongoDB.
Este livro é uma excelente coleção de exemplos do mundo real, insights práticos e dicas valiosas. É um guia abrangente para capacitar os desenvolvedores com as habilidades necessárias para lidar com os desafios do gerenciamento moderno de dados, integração de aplicativos e segurança.
Como este livro irá ajudá-lo?
Este livro fornece exemplos práticos que ajudarão você a se tornar proficiente na criação de aplicativos eficientes, seguros e de alto desempenho usando o MongoDB. Você ganhará confiança para realizar consultas complexas, integrar aplicativos robustos e garantir a segurança dos dados para superar os desafios modernos de dados.
Para quem é este livro?
Este livro é para desenvolvedores com nível de habilidade intermediário, que desejam se tornar especialistas em MongoDB.
Este livro não é para iniciantes. Recomenda-se conhecimento prático do MongoDB para aproveitar ao máximo este guia. Ideal para administradores de banco de dados, desenvolvedores de aplicativos e engenheiros de software, este livro irá ajudá-lo a desenvolver habilidades avançadas para realizar tarefas complexas de dados.
O que este livro cobre?
Capítulo 1, Introdução ao MongoDB, fornece uma introdução rápida ao MongoDB, a plataforma de dados de desenvolvedor mais versátil do mundo, através das lentes dos criadores. Este capítulo despertará sua curiosidade em explorar o MongoDB e todos os seus novos recursos.
Capítulo 2, A Arquitetura MongoDB, mostra como aumentar a confiabilidade e a disponibilidade de seus aplicativos implementando vários métodos no MongoDB, usando replicação e fragmentação. Ele também aborda os novos recursos de cluster fragmentado introduzidos no MongoDB 7.0.
Capítulo 3,Ferramentas de desenvolvedor explora diferentes ferramentas de desenvolvedor MongoDB e mostra como usá-las para aumentar sua produtividade.
Capítulo 4, Conectando-se ao MongoDB, apresenta as facetas multilíngues do MongoDB, fornecendo um passo a passo dos métodos de driver direto, bibliotecas ODM e integração do MongoDB em Ruby, PHP, Python e Node.js.
xx
Prefácio
Capítulo 5,Operações CRUD e consultas básicas, demonstra operações CRUD e consultas básicas em ação. Ele fornece exemplos práticos de uso do MongoDB Shell para operações de administração de banco de dados.
Capítulo 6, Schema Design and Data Modeling, aborda princípios e técnicas de design de esquema do MongoDB para representação eficaz de dados — que são essenciais para otimizar o desempenho e a escalabilidade.
Capítulo 7, Advanced Querying in MongoDB, oferece uma exploração mais profunda dos recursos do MongoDB, incluindo a estrutura de agregação, técnicas de indexação e otimização.
Capítulo 8,Aggregation, aprofunda-se na estrutura de agregação e explora inúmeras etapas e operadores de expressão adequados para os mais diversos problemas.
Capítulo 9,Transações ACID de vários documentos, mostra como o MongoDB lida com ACID
de vários documentos
transações e qual o significado deste conceito em setores com requisitos rigorosos, como finanças, fintech e aplicações de missão crítica.
Capítulo 10, Index Optimization, discute e mostra como o MongoDB suporta uma infinidade de índices—
de índices de campo único a índices compostos, de geoespaciais a hash e parciais, bem como alguns tipos de indexação recentemente introduzidos.
Capítulo 11,MongoDB Atlas: Powering the Future of Developer Data Platforms, fornece um passo a passo detalhado do MongoDB Atlas – o serviço de banco de dados em nuvem mais avançado do mercado.
Capítulo 12, Monitoramento e Backup no MongoDB, concentra-se nos aspectos essenciais do monitoramento da integridade e do desempenho do sistema, juntamente com estratégias e ferramentas para backup e recuperação de dados eficazes.
Capítulo 13, Introdução ao Atlas Search, compartilha insights sobre os recursos integrados ao MongoDB
Atlas. Ele mostra como usar funcionalidades sofisticadas de pesquisa para seus dados.
Capítulo 14, Integrando aplicativos com o MongoDB, aprofunda os vários métodos de integração de aplicativos com o MongoDB — tanto as versões nativas quanto as de nuvem do MongoDB Atlas.
Capítulo 15,Segurança, discute o papel crítico da segurança no MongoDB, investigando métodos robustos de autenticação e autorização, como SCRAM, x.509, LDAP e Kerberos.
Capítulo 16, Auditoria, fornece uma visão aprofundada dos recursos, benefícios e desafios da auditoria no MongoDB, com compreensão e diretrizes práticas para sua implementação eficaz.
Capítulo 17,Criptografia, resume os diferentes tipos de criptografia e mostra a implementação prática de cada tipo em seu banco de dados.
Para aproveitar ao máximo este livro
xxi
Para aproveitar ao máximo este livro
Você precisará do seguinte software:
Software/hardware
Operativo
Recursos para etapas de instalação
abordado no livro
requisitos de sistema
MongoDB versão 4.4 Windows, macOS ou Linux
https://www.mongodb.com/docs/
ou mais recente
manual/instalação/
MongoDB
Windows, macOS ou Linux
https://www.mongodb.com/docs/
Pesquisa Atlas
atlas/primeiros passos/
Shell do MongoDB
Windows, macOS ou Linux
https://www.mongodb.com/docs/
manual/administração/
comunidade de instalação/
Bússola MongoDB
Windows, macOS ou Linux
https://www.mongodb.com/docs/
bússola/atual/instalar/
Depois de ler este livro, encorajamos você a conferir alguns dos outros recursos disponíveis em https://www.mongodb.com/developer ou https://learn.mongodb.com/.
Se você estiver usando a versão digital deste livro, aconselhamos que você mesmo digite o código ou acesse o código no repositório GitHub do livro (um link está disponível na próxima seção). Isso o ajudará a evitar possíveis erros relacionados à cópia e colagem do código.
Baixe os arquivos de código de exemplo
Você pode baixar os arquivos de código de exemplo deste livro no GitHub
ahttps://github.com/
PacktPublishing/Mastering-MongoDB-7.0. Se houver uma atualização no código, ela será atualizada no repositório GitHub.
Também temos outros pacotes de códigos do nosso rico catálogo de livros e vídeos disponíveis emhttps://
github.com/PacktPublishing/. Cdane-se eles!
XXII
Prefácio
Convenções usadas
Há uma série de convenções de texto usadas ao longo deste livro.
Código no texto: indica palavras de código no texto, nomes de coleções de bancos de dados, nomes de pastas, nomes de arquivos, extensões de arquivos, nomes de caminhos, URLs fictícios, entrada do usuário e identificadores do Twitter. Aqui está um exemplo: A gem mongoid pode ser adicionada ao seu aplicativo modificando o Gemfile.
Um bloco de código é definido da seguinte forma:
classe Forma
incluir Mongoid::Documento
campo: x, tipo: inteiro
campo: y, tipo: Inteiro incorporado_in: tela
fim
1
Introdução ao MongoDB
MongoDB, o banco de dados de documentos mais popular, é um NoSQL, armazenamento de valores-chave não relacional, um JSON
banco de dados e muito mais. É uma plataforma de dados de desenvolvedor robusta e rica em recursos, com vários recursos integrados necessários para aplicativos modernos, como aprendizado de máquina e recursos de IA, streaming, funções, gatilhos, sem servidor, sincronização de dispositivos e pesquisa de texto completo.
Quem usa o MongoDB?
Há 10 anos, o uso do MongoDB era um tanto específico. Era um banco de dados jovem com recursos atraentes para desenvolvedores como você. Agora, em 2023, o MongoDB é usado por uma infinidade de setores variados e seus casos de uso abrangem todos os tipos de situações e tipos de dados armazenados. Alguns dos maiores bancos, montadoras, agências governamentais e empresas de jogos do mundo usam o MongoDB para suas aplicações de produção. Os usuários mais famosos do MongoDB são Coinbase, Epic Games, Morgan Stanley, Adobe, Tesla, Canva, Ulta Beauty, Cathay Pacific, Dongwha e Vodafone.
A plataforma MongoDB Atlas tem milhões de usuários, todos os quais confiam que seus dados serão gerenciados de forma segura e eficaz na nuvem. Essa popularidade elevou o MongoDB a grandes alturas, não apenas em termos de seu crescimento e valor como empresa, mas também em termos de sua participação bruta no desenvolvimento. Em 2023, um em cada quatro desenvolvedores usava extensivamente o MongoDB na produção. Essa proporção é muito maior em outras comunidades de desenvolvedores, como Go e JavaScript (aproximadamente 40%).
2
Introdução ao MongoDB
Por que os desenvolvedores amam o MongoDB?
Juntamente com sua versatilidade e recursos robustos, o MongoDB é a escolha preferida por vários motivos, como:
• Flexibilidade e sem esquemas: Ao contrário dos bancos de dados relacionais tradicionais, o MongoDB permite armazenar e recuperar dados sem esquemas rígidos ou estruturas predefinidas. Essa flexibilidade é particularmente útil quando os dados evoluem ao longo do tempo ou quando você está lidando com dados não estruturados ou semiestruturados.
• Escalabilidade e desempenho: o MongoDB é altamente escalável e tem um desempenho excepcionalmente bom, tornando-o adequado tanto para aplicações de grande escala
quanto para projetos pessoais. MongoDB Atlas fornece um nível gratuito para sempre para projetos paralelos.
• Linguagem de consulta avançada: o MongoDB oferece uma linguagem de consulta poderosa e recursos de indexação, simplificando operações comuns como findOne e updateOne.
• Formato de dados amigável ao desenvolvedor: os dados no MongoDB se assemelham muito aos objetos das linguagens de programação populares, reduzindo a complexidade do mapeamento de dados e agilizando o desenvolvimento.
• Simplicidade e início rápido: a simplicidade e a configuração descomplicada do MongoDB
facilitam sua adaptação.
Não há processos de vendas complexos ou problemas de licenciamento envolvidos.
O que atrai a maioria dos desenvolvedores é a simplicidade de trabalhar diariamente com o MongoDB, em particular, a experiência perfeita de criação, atualização e interação com dados. Por exemplo, considere um desenvolvedor Python tentando inserir um documento, consultar esse documento e receber um conjunto de resultados usando o seguinte código: de pymongo importar MongoClient
#Conecte-se ao MongoDB
cliente = MongoClient('mongodb://localhost:27017/')
db = client['mydatabase'] # Especifique o nome do banco de dados
coleção = db['mycollection'] # Especifique o nome da coleção
# Cria um documento a ser inserido
documento = {
'nome': 'Jane Doe',
'idade': 30,
'e-mail': ' janedoe@example.com '
}
# Insira o documento na coleção
resultado = coleção.insert_one(documento)
Por que os desenvolvedores amam o MongoDB?
3
# Verifica se a inserção foi bem sucedida
se resultado.reconhecido:
print('Documento inserido com sucesso.')
print('ID do documento inserido:', result.inserted_id)
outro:
print('Falha ao inserir documento.')
Observe que o desenvolvedor cria um dicionário representando o documento a ser inserido. Nesse caso, contém nome, idade e detalhes de e-mail. O desenvolvedor não precisa criar um ID para o documento, pois o MongoDB cria automaticamente um identificador exclusivo em cada documento.
Para recuperar este documento, você pode filtrar a consulta usando qualquer campo do documento individualmente ou em combinação. Vamos ver isso em ação: de pymongo importar MongoClient
#Conecte-se ao MongoDB
cliente = MongoClient('mongodb://localhost:27017/')
db = client['mydatabase'] # Especifique o nome do banco de dados
coleção = db['mycollection'] # Especifique o nome da coleção
# Recuperar documentos com base em condições específicas
consulta = {
'idade': {'$gte': 29}, # Recupera documentos onde a idade é maior ou igual a 29
}
documentos = coleção.find(consulta)
# Iterar sobre os documentos recuperados
para documento em documentos:
imprimir (documento)
Bem simples! O exemplo anterior demonstra como você pode usar um operador de consulta MongoDB como $gte (maior ou igual a) para filtrar sua consulta. Mas a verdadeira magia acontece quando o documento é devolvido. Quando o MongoDB retornar um documento, ele será representado como um dicionário Python. Cada campo no documento é um par de valores-chave dentro do dicionário, semelhante ao exemplo a seguir:
{
'_id': ObjectId('60f5c4c4543b5a2c7c4c73a2'),
'nome': 'Jane Doe',
'idade': 30,
'e-mail': ' janedoe@example.com '
}
4
Introdução ao MongoDB
O MongoDB possui um conjunto de bibliotecas de idiomas e drivers que atuam como uma camada de tradução entre o cliente e o servidor, interceptando cada operação e traduzindo-a para a linguagem de consulta do MongoDB. Com isso, você pode interagir com os dados usando sua linguagem de programação nativa de forma puramente idiomática.
Juntamente com outras ofertas da plataforma de dados para desenvolvedores MongoDB
Atlas, ela realmente abstrai as dificuldades de trabalhar com um banco de dados e, em vez disso, permite que você interaja com os dados puramente por meio de seu código e IDE.
Isso é infinitamente preferível ao usar um shell de banco de dados separado, uma interface de usuário de banco de dados e outras ferramentas específicas de banco de dados. Como o MongoDB Atlas oferece um banco de dados MongoDB totalmente gerenciado, você pode configurar e registrar por meio de uma interface de linha de comando.
Em sua essência, a missão do MongoDB é ser um banco de dados poderoso para desenvolvedores, e seus recursos estão sintonizados com as comunidades de linguagens de programação e integrações de estrutura, e não com ferramentas de administração de banco de dados. Isso ficará mais aparente nos capítulos subsequentes, onde você aprenderá mais sobre o MongoDB Atlas, o Atlas Vector Search, a pesquisa de texto completo e recursos como agregação — tudo sob a ótica de um desenvolvedor.
Ao final deste livro, você aprenderá como essas ferramentas podem ser eficazes e tornar o gerenciamento de banco de dados mais simples!
Eficiência da complexidade inerente de
Bancos de dados MongoDB
A parte mais interessante do banco de dados moderno é entender sua arquitetura e por que foi construído dessa maneira. Fundamentalmente, o MongoDB é um sistema distribuído. O próprio servidor de banco de dados foi originalmente construído com a expectativa de que a maioria dos usuários o executaria com uma configuração padrão –
conjunto de réplicas, às vezes também chamado de cluster. Ao explorar essa arquitetura