Perguntas frequentes sobre o MongoDB

O que é o MongoDB?

MongoDB é uma plataforma de dados distribuída, de propósito geral, baseada em documentos, construída para desenvolvedores de aplicativos modernos e para a nuvem. Nenhuma plataforma de dados é mais produtiva de se usar.

Por que o MongoDB é útil?

A plataforma de dados MongoDB é construída em torno de três princípios básicos de projeto que, coletivamente, permitem construir mais rapidamente e com maior qualidade:

  1. O modelo de dados do documento - apresentando a melhor maneira de trabalhar com dados.

  2. Um projeto de sistemas distribuídos - permitindo que você possa inteligentemente colocar os dados onde você quiser*.

  3. Uma experiência unificada que dá a você a liberdade de operar em qualquer lugar

    • permitindo que você proteja seus aplicativos no futuro e elimine o bloqueio do fornecedor.

Saiba mais lendo o Guia de Arquitetura do MongoDB.

Quando devo usar o MongoDB?

A plataforma de dados MongoDB pode ser usada em uma gama de aplicações OLTP e analíticas.

Com o MongoDB Server e o MongoDB Atlas Data Lake (atualmente em beta), você pode atender a uma ampla gama de requisitos do aplicativo.

MongoDB Server & Atlas: OLTP & Online Analytics

O MongoDB Server é um banco de dados de uso geral projetado para servir a maioria do OLTP e da carga de trabalho de análise online:

  • Onde quer que você esteja pensando em usar um banco de dados relacional, você deve considerar o MongoDB.

  • Onde quer que você esteja pensando em utilizar um banco de dados NoSQL, você deve considerar o MongoDB.

Se você planeja executar seus aplicativos em suas próprias instalações, como uma solução sem servidor, sem nuvens, ou como um modelo híbrido de implantação no meio, o MongoDB Server oferece agilidade completa de infraestrutura. Você mesmo pode administrar o MongoDB em sua própria infraestrutura, ou usar o MongoDB Atlas, nosso serviço de banco de dados global totalmente gerenciado e totalmente automatizado, disponível em mais de 60 regiões em AWS, Azure e GCP

MongoDB Atlas Data Lake (Beta): Análise off-line

Além do MongoDB Server, o MongoDB Atlas Data Lake estende o poder e a produtividade da MongoDB para cargas de trabalho analíticas off-line. O Atlas Data Lake permite a consulta rápida e fácil de dados em qualquer formato no Amazon S3 (com outros provedores de nuvens em breve) usando a linguagem e ferramentas MongoDB Query Language.

Com o Atlas Data Lake você pode perceber o valor de seu lago de dados mais rapidamente: você não precisa mover dados para qualquer lugar, você pode trabalhar com dados complexos imediatamente em sua forma nativa, e com sua arquitetura totalmente gerenciada e sem servidor, você controla os custos e remove a carga operacional.

A MongoDB Data Platform

Através do MongoDB Server e do Atlas Data Lake, você tem uma plataforma de dados integrada que compartilha a mesma linguagem e ferramentas de consulta, totalmente gerenciada para você pelo serviço Atlas nativo da nuvem, permitindo que você atenda a uma ampla gama de aplicações operacionais e analíticas:

  1. MongoDB Atlas: projetado para aplicações OLTP online que exigem tempos de resposta de milissegundos, provisionados com nós analíticos dedicados para análise em tempo real contra dados operacionais e ao vivo.

  2. MongoDB Atlas: Análises online com índices secundários otimizados para suportar padrões de consulta previsíveis que requerem latência na faixa de subsegundos a vários segundos de tempo de resposta.

  3. MongoDB Atlas Data Lake: Projetado para análise offline contra grandes volumes de dados residentes no armazenamento em nuvem, com latência na faixa de segundos (no mínimo), mas mais tipicamente minutos e mais - ditados pela quantidade de dados que você está consultando e como eles são particionados.

Para conhecer os casos de uso para MongoDB, e as cargas de trabalho em que você deve avaliar tecnologias alternativas, revise o Documento de Orientação de Caso de Uso MongoDB.

Como o MongoDB é diferente de bancos de dados relacionais como o Oracle?

Bancos de dados relacionais como Oracle, MySQL, SQL Server, Postgres e outros são construídos sobre arquiteturas projetadas originalmente há mais de 40 anos. Os requisitos para as aplicações eram muito diferentes nos anos 70 do que são com os aplicativos modernos de hoje. Quando a Oracle lançou seu banco de dados comercial pela primeira vez em 1979, custou cerca de US$ 3.000 por MB de armazenamento. Custos como esses forçaram os arquitetos de software a normalizar os dados e criar várias tabelas de junção para armazenar os dados do aplicativo na tentativa de eliminar qualquer redundância. Como resultado, as aplicações de bancos de dados relacionais hoje contêm dezenas, centenas e em alguns casos milhares de tabelas que precisam ser unidas para obter resultados de consulta. Esta complexidade não só exige que o desenvolvedor escreva consultas SQL complicadas, mas ter muitas tabelas em uma consulta requer maiores exigências de E/S, o que aumenta os custos de infraestrutura.

O MongoDB foi projetado com o desenvolvedor em mente, tirando o banco de dados do caminho e aumentando a produtividade. Com o MongoDB, basta armazenar os dados como são usados dentro do aplicativo e consultar os dados com uma linguagem de consulta moderna. Seu esquema é flexível, permitindo que os desenvolvedores integrem continuamente novas funcionalidades.

Ao contrário do Oracle e de outros bancos de dados relacionais, o MongoDB é construído sobre uma arquitetura de sistemas distribuídos, permitindo escalar seu banco de dados em múltiplas instâncias - que podem ser uma região, ou espalhadas globalmente por múltiplas regiões.

Confira a página Oracle e MongoDB Comparados para conhecer melhor as diferenças.

Como posso conhecer o MongoDB?

A maneira mais fácil de aprender MongoDB é através de nossos cursos de treinamento online gratuitos para desenvolvedores e DBAs em MongoDB University. Os cursos de treinamento online da Universidade MongoDB são desenvolvidos e ministrados pelos engenheiros da MongoDB, Inc. A MongoDB University já teve mais de 1 milhão de inscrições de 196 países: estes alunos aprenderam como desenvolver e implantar aplicativos em MongoDB.

Os cursos gratuitos da MongoDB University cobrem tudo o que você precisa saber para se tornar um especialista em MongoDB. Cursos de treinamento online são desenvolvidos especificamente para ajudá-lo a desenvolver novas habilidades nas áreas que mais importam para os empregadores. Os cursos de treinamento online são baseados em aplicações do mundo real e ensinados por nossa equipe dedicada de engenheiros internos que trabalham no código todos os dias e viram casos de uso em mais de 13.000 empresas.

Os cursos de treinamento da MongoDB University são de ritmo próprio, permitindo que você revise os vídeos e materiais do curso em um horário que lhe seja conveniente. Ao mesmo tempo, oferecemos estrutura ao seu aprendizado com tarefas e prazos semanais para verificar seu progresso e um exame final para testar seus conhecimentos. A maioria dos cursos dura três semanas, e cada semana normalmente requer apenas 90 minutos de seu tempo. Encontre um curso que seja adequado para você. Veja o catálogo de cursos.

Como posso me tornar um profissional certificado MongoDB?

Faça o Exame de Certificação para comprovar sua experiência e tornar-se um Desenvolvedor Profissional Certificado MongoDB ou DBA. As certificações MongoDB reconhecem desenvolvedores e DBAs com o conhecimento necessário para construir e manter aplicações MongoDB.

Para se preparar para o exame de certificação, faça nosso Exame Prático para criar confiança ao se familiarizar com as áreas temáticas e o formato do exame de certificação. Além do exame prático, temos nosso Guia de Estudo. O Guia de Estudo cobre todos os tópicos dos exames do Desenvolvedor e do DBA. Cada seção do guia contém links para a documentação relevante e outros recursos on-line.

O MongoDB Server é gratuito. O que a MongoDB, Inc. comercializa?

Somos a empresa que constrói e opera o MongoDB. Mais de 14.200 organizações confiam em nossos produtos comerciais. Oferecemos software e serviços para facilitar sua vida:

O MongoDB Database

  • MongoDB Atlas é o serviço global de banco de dados em nuvem para aplicativos modernos. Implemente o MongoDB totalmente gerenciado pela AWS, Azure ou Google Cloud com a melhor automação da categoria e práticas comprovadas que garantem disponibilidade, escalabilidade e conformidade com os padrões de segurança. Use o ecossistema robusto de drivers, integrações e ferramentas do MongoDB para construir mais rapidamente e gastar menos tempo com operações e administração de banco de dados.

  • MongoDB Enterprise Advanced é a melhor maneira de administrar MongoDB em sua própria infraestrutura. É um pacote bem afinado de software avançado, suporte, certificações e outros serviços projetados para a forma como você faz negócios.

  • MongoDB Cloud Manager é uma ferramenta baseada na nuvem que ajuda a gerenciar o MongoDB em sua própria infraestrutura. Com provisionamento automatizado, monitoramento fino e backups contínuos, você obtém uma suíte completa de gerenciamento que reduz as despesas operacionais, enquanto mantém controle total sobre seus bancos de dados.

MongoDB Analytics and Visualization

  • MongoDB Atlas Data Lake permite a consulta rápida e fácil de dados em qualquer formato no Amazon S3 usando a linguagem e ferramentas MongoDB Query Language. Você não precisa mover dados para nenhum lugar, você pode trabalhar com dados complexos imediatamente em sua forma nativa, e com sua arquitetura totalmente gerenciada e sem servidor, você controla os custos e remove a carga operacional.

  • MongoDB Charts é a melhor maneira de criar visualizações dos dados do MongoDB em qualquer lugar. Construa facilmente visualizações rápidas para analisar dados complexos e aninhados. Incorpore gráficos individuais em qualquer aplicação web ou monte-os em painéis de controle ao vivo para compartilhamento.

  • O MongoDB Connector for BIpermite usar o MongoDB como fonte de dados para suas plataformas de BI e análise baseadas em SQL, tais como Tableau, Microstrategy, Looker e muito mais.

  • O MongoDB Connector for Apache Spark expõe todas as bibliotecas da Spark, incluindo Scala, Java, Python e R. MongoDB. Os dados são materializados como DataFrames e Datasets para análise com aprendizado de máquina, gráficos, streaming e APIs SQL.

Mobile Database and Serverless Application Platform

  • O MongoDB Realm Database foi instalado mais de 2 bilhões de vezes, oferecendo uma alternativa rápida, fácil de usar, ao SQLite e ao Core Data. Com suporte para consultas complexas, threading seguro, uma arquitetura reativa para criar IU responsivas e fluentes, criptografia e suporte entre plataformas, os desenvolvedores podem simplificar seu código e construir experiências poderosas e envolventes em mais dispositivos.

  • A MongoDB Realm and Stitch Platform ajuda a construir mais rapidamente aplicativos de fullstack melhores. Ele oferece regras facilmente configuráveis para acessar dados e serviços diretamente do frontend de seu aplicativo, juntamente com funções sem servidor para executar a lógica do aplicativo. É possível sincronizar automaticamente os dados entre o cliente e a camada de dados backend. Através de integrações com seus repositórios de código, você pode desenvolver localmente e então implementar sem problemas atualizações de aplicativos controlados por versão para teste e produção.

MongoDB Services

  • MongoDB Consulting packages fazem com que você chegue à produção mais rapidamente, ajudá-lo a afinar o desempenho na produção, ajudá-lo a escalar e libertá-lo para se concentrar em seu próximo lançamento.

  • MongoDB Training ajuda você a se tornar um especialista MongoDB, desde o projeto até a operação de sistemas de missão crítica em escala. Quer você seja um desenvolvedor, DBA ou arquiteto, podemos ajudá-lo a melhorar em MongoDB.

Contate-nos para saber mais

Posso obter uma licença comercial do MongoDB?

Sim, você pode obter uma licença comercial para a MongoDB com a compra de MongoDB Enterprise Advanced.

Como os dados são armazenados no banco de dados MongoDB?

Os dados no MongoDB são armazenados em documentos BSON - estruturas de dados no estilo JSON. Os documentos contêm um ou mais campos, e cada campo contém um valor de um tipo de dado específico, incluindo matrizes, dados binários e subdocumentos. Os documentos que tendem a compartilhar uma estrutura similar são organizados como coleções.

Pode ser útil pensar em documentos como análogos a linhas em um banco de dados relacional, campos como semelhantes a colunas e coleções como semelhantes a tabelas.

Saiba mais no Guia de Arquitetura do MongoDB.

Como desenvolvedor, como eu trabalho com documentos do MongoDB?

Para acelerar a produtividade do desenvolvedor, o MongoDB fornece drivers nativos para todas as linguagens e estruturas de programação populares. Os drivers suportados incluem Java, Javascript, C#/.NET, Go, Python, Perl, PHP, Scala e outros. Todos os drivers MongoDB suportados são projetados para serem idiomáticos para a linguagem de programação em questão. Isto torna muito mais natural para os desenvolvedores trabalharem com dados do que linguagens baseadas em strings como SQL, e elimina a necessidade de camadas de abstração ORM incômodas e frágeis.

Você também pode interagir graficamente com o MongoDB usando o MongoDB Compass, a interface gráfica do MongoDB. Através do Compass você pode explorar e manipular seus dados, criar visualmente consultas e pipelines de agregação a partir da interface gráfica e depois exportá-los como código para seu aplicativo; examinar a execução e desempenho das consultas; visualizar e criar índices; construir regras e visões de validação de esquemas; e muito mais.

O MongoDB suporta transações ACID?

Sim. As transações ACID de vários documentos estão disponíveis desde o lançamento do MongoDB 4.0 em 2018.

Onde posso operar o MongoDB?

O MongoDB pode ser executado em qualquer lugar, proporcionando-lhe total liberdade de bloqueio da plataforma.

MongoDB Atlas oferece a você um serviço completo, pago e totalmente gerenciado para MongoDB na AWS, Azure e Google Cloud.⏎ Você pode fazer o download do MongoDB e executá-lo você mesmo em qualquer lugar. MongoDB Ops Manager é a melhor maneira de executar o MongoDB em sua própria infraestrutura, tornando rápido e fácil para as equipes de operações implantar, monitorar, fazer backup e escalar o MongoDB. Os recursos do Ops Manager também estão disponíveis no serviço MongoDB Cloud Manager.

O MongoDB escala?

Dezenas de milhares de organizações usam MongoDB para construir sistemas de alto desempenho em escala. Organizações que vão desde empresas da Fortune 100 até as mais ágeis startups confiam no MongoDB. Eles cresceram de implantações de servidor único para clusters com mais de 1.000 nós, entregando milhões de operações por segundo em mais de 100 bilhões de documentos e petabytes de dados. Saiba mais.

Através de sharding, você pode escalar automaticamente seu banco de dados MongoDB através de múltiplos nós para lidar com cargas de trabalho de escrita intensiva e tamanhos de dados crescentes. A fragmentação com MongoDB permite que você escale o banco de dados sem problemas à medida que suas aplicações crescem além dos limites de hardware de um único servidor, e o faz sem acrescentar complexidade ao aplicativo. Para responder às mudanças na demanda de carga de trabalho, os documentos podem ser movidos entre fragmentos e os nós podem ser adicionados ou removidos do agrupamento em tempo real. O MongoDB reequilibrará automaticamente os dados conforme necessário, sem intervenção manual.

Como o MongoDB garante alta disponibilidade?

O MongoDB mantém automaticamente conjuntos de réplicas, múltiplas cópias de dados que são distribuídas entre servidores, racks e datacenters. Os conjuntos de réplicas ajudam a evitar o tempo de inatividade do banco de dados usando replicação nativa e failover automático.

Um conjunto de réplicas consiste de vários membros do conjunto de réplicas. A qualquer momento, um membro atua como membro principal, e os outros membros atuam como membros secundários. Se o membro primário falhar por qualquer motivo (por exemplo, falha de hardware), um dos membros secundários é automaticamente eleito para o primário e começa a processar todas as leituras e escritos.

Saiba mais noGuia de Arquitetura MongoDB.

Como o MongoDB garante consistência?

O MongoDB é consistente por padrão: leituras e escritos são emitidos para o membro principal de um conjunto de réplicas. Os aplicativos podem opcionalmente ler a partir de réplicas secundárias, onde os dados são eventualmente consistentes por padrão. As leituras dos secundários podem ser úteis em cenários onde é aceitável que os dados estejam um pouco desatualizados, tais como algumas aplicações de relatórios. Os aplicativos também podem ler a partir da cópia mais próxima dos dados (medida pela distância do ping) quando a latência é mais importante do que a consistência.

Saiba mais no Guia de Arquitetura do MongoDB.

O MongoDB dispensa esquema?

Não. No MongoDB, o projeto do esquema ainda é importante. O modelo documental do MongoDB, entretanto, usa um paradigma de esquema diferente dos tradicionais bancos de dados relacionais. Em MongoDB, os documentos são autodescritos; não há um catálogo central onde os esquemas são declarados e mantidos. O esquema pode variar entre documentos, e o esquema pode evoluir rapidamente sem exigir a modificação dos dados existentes.

O esquema dinâmico do MongoDB também facilita a representação de dados semiestruturados e polimórficos, pois nem todos os documentos precisam ter exatamente os mesmos campos. Por exemplo, uma coleção de posições de negociação financeira pode ter posições que são de ações, e algumas que são títulos, e algumas que são em dinheiro. Todos podem ter alguns campos em comum, mas alguns campos (por exemplo, “ticker“, “numberofshares“) não se aplicam a todos os tipos de posição.

Com o Schema Validation, você tem a opção de impor um esquema contra os dados, garantindo a presença de campos obrigatórios, valores permissíveis e tipos de dados apropriados. Ao projetar esquemas no MongoDB, você deve considerar uma série de tópicos, incluindo os tipos de consultas que a aplicação precisará realizar, como os objetos são gerenciados no código da aplicação, e como os documentos mudarão e potencialmente crescerão com o tempo.

Saiba mais sobre o projeto de esquema:

Devo normalizar meus dados antes de armazená-los no MongoDB?

Não. O desenho do esquema é muito importante quando se utiliza o MongoDB, mas muito diferente do desenho do esquema para bancos de dados relacionais.

Saiba mais sobre o desenho de esquema:

Como o MongoDB protege meus dados?

O MongoDB apresenta amplas capacidades para defender, detectar e controlar o acesso aos dados:

  • Autenticação. Simplificando o controle de acesso ao banco de dados, o MongoDB oferece um forte mecanismo de desafio-resposta baseado no SCRAM-256, juntamente com a integração à infraestrutura de segurança empresarial, incluindo LDAP, Windows Active Directory, Kerberos e certificados x.509.
  • Autorização. O Controle de Acesso Baseado em Funções (RBAC) permite que você configure permissões granulares para um usuário ou uma aplicação com base nos privilégios de que ele precisa para fazer seu trabalho.
  • Auditoria. Para conformidade regulatória, os administradores de segurança podem usar o registro de auditoria nativo do MongoDB para registrar todas as atividades e mudanças no banco de dados.
  • Criptografia em todos os lugares. Os dados do MongoDB podem ser criptografados enquanto em movimento através da rede, enquanto em uso no banco de dados, e enquanto em repouso, seja em disco ou em backups.
Revise a documentação

para saber mais sobre os controles de segurança do MongoDB. Acesse o MongoDB Trust Center para aprender mais sobre segurança na nuvem.

O que há de novo no lançamento do MongoDB 4.4?

Revise o Guia das Novidades para saber mais.

Qual é a relação entre o MongoDB Realm e o MongoDB Stitch?

O MongoDB Realm combinará o Realm, o popular banco de dados móvel e tecnologia de sincronização de dados, e o MongoDB Stitch, a plataforma sem servidor do MongoDB, em uma solução unificada que facilita a construção de experiências poderosas e envolventes em mais dispositivos. Você pode saber mais aqui.

De onde vem o nome MongoDB?

MongoDB vem da palavra "humongous" ("enorme", em inglês). Nossos fundadores construíram grandes empresas de Internet como a DoubleClick. Eles se depararam consistentemente com os mesmos problemas com bancos de dados, sendo um dos maiores problemas a escalabilidade. Quando se propuseram a construir o MongoDB, eles queriam um banco de dados que fosse escalonado. Assim, “um banco de dados enorme” ou MongoDB.

O que significa a folha no logotipo do MongoDB?

Nossos fundadores acreditam que a codificação deve ser natural, assim como a utilização de um banco de dados. Eles querem que a experiência de utilização do MongoDB seja simples e natural. Daí, a folha.