O que é MongoDB? Um guia por especialistas

Jeffrey Erickson | Redator Sênior | 30 de outubro de 2024

O MongoDB foi criado em 2007 por alguns desenvolvedores que queriam rastrear um grande número de pequenas transações no setor de serviços de publicidade. O novo banco de dados, inicialmente chamado de 10gen, armazenava dados em um "bucket" simples de arquivos do tipo JSON e era capaz de escalar de forma muito rápida. Não precisava de um modelo de dados complexo ou de uma concorrência de transações rigorosa, pois simplesmente contabilizava impressões de anúncios e os riscos eram baixos.

No entanto, o MongoDB acabou oferecendo exatamente a simplicidade de banco de dados que os desenvolvedores tanto desejavam. O sistema foi lançado em 2009 como um modelo de desenvolvimento de código aberto em 2009, migrou para a SSPL (Server Side Public License) em 2018 e se tornou o padrão para armazenamento de dados em diversas plataformas de desenvolvimento de código aberto, incluindo Expedia, Lyft e eBay. Vamos ver como ele funciona.

O que é MongoDB?

O MongoDB é um banco de dados de documentos de código aberto popular que é amplamente utilizado em aplicações modernas para web e dispositivos móveis. É classificado como um banco de dados NoSQL, o que significa que adota uma abordagem flexível e orientada a documentos para armazenar dados, em vez do método relacional tradicional baseado em tabelas. Grande parte do diferencial do MongoDB é sua simplicidade e foco no desenvolvedor. Por exemplo, as interações Mongo são definidas pela sigla CRUD, que significa criar, ler, atualizar e excluir.

O MongoDB salva dados em documentos JSON que facilitam o uso de dados armazenados, sejam eles estruturados, não estruturados ou semiestruturados, para diferentes tipos de aplicações. O modelo de dados flexível do MongoDB permite que os desenvolvedores armazenem dados não estruturados, oferecendo suporte à indexação para acesso mais rápido aos arquivos e replicação para proteção e disponibilidade dos dados. Isso significa que os desenvolvedores podem projetar e construir aplicações sofisticadas usando o MongoDB.

Embora o MongoDB tenha sido desenvolvido para rastrear impressões em milhares de sites de veiculação de anúncios, logo ganhou grande popularidade como um armazenamento de dados flexível no desenvolvimento web de código aberto. Ele tem evoluído continuamente desde seu lançamento em 2007, acumulando um conjunto robusto de recursos que inclui consultas ad hoc, indexação e agregação em tempo real. Um dos principais benefícios do MongoDB para os desenvolvedores é que, em comparação com a maioria dos bancos de dados relacionais populares, ele é intuitivo e fácil de usar. O tipo de documentos JSON armazenados no MongoDB corresponde a tipos de dados familiares encontrados em linguagens de programação populares, como dicionários em JavaScript ou Python. O MongoDB também oferece um menu completo de bibliotecas de cliente com suporte a drivers para a maioria das linguagens de programação, incluindo PHP, .NET, Java, Python, Node.js e muitas outras.

Como todas as ferramentas de tecnologia, o MongoDB tem suas vantagens em certos aspectos e algumas limitações em outros. Foi projetado para monitorar publicidade online, o que exigia acesso simultâneo rápido, mas precisava apenas de precisão transacional razoável e pouca análise em tempo real. Ainda hoje, o MongoDB é baseado nos princípios BASE, que significam disponibilidade, escalabilidade e consistência eventual. Sendo assim, o MongoDB é normalmente usado em cenários onde alta disponibilidade e escalabilidade são considerações primordiais de projeto. Em contraste, para tarefas como operações financeiras ou em ambientes corporativos de missão crítica, os desenvolvedores geralmente optam por um banco de dados relacional. Estes oferecem transações ACID (atomicidade, consistência, isolamento e durabilidade) para garantir a confiabilidade e a consistência das operações do banco de dados. No entanto, mais recentemente, o setor de tecnologia está oferecendo soluções que podem dar aos desenvolvedores o melhor dos dois mundos por meio da simplicidade de desenvolvimento do JSON e dos benefícios do SQL.

Diagrama e descrição de como o MongoDB funciona:
Como o MongoDB funciona

Como os dados são transferidos das aplicações para o banco de dados MongoDB?

  • As aplicações cliente em diversas linguagens de programação interagem com o banco de dados MongoDB.
    1. Drivers são bibliotecas específicas do idioma que permitem que as aplicações se comuniquem com o MongoDB.
    2. O servidor de banco de dados MongoDB é onde seus dados são armazenados e gerenciados. Pode ser um cluster único, uma réplica ou com sharding.
    3. Os arquivos de dados armazenam os documentos reais dentro do banco de dados MongoDB.
    4. O sistema de armazenamento em blocos (ou chunks) divide os arquivos em seções de tamanho fixo e os armazena.
    O diagrama ilustra o fluxo básico de dados entre as aplicações e o banco de dados MongoDB.

    Ambientes do MongoDB

    O MongoDB vem em uma variedade de configurações e níveis de serviço para atender às necessidades dos desenvolvedores que trabalham em projetos de pequenas, médias e até grandes empresas.

    • O MongoDB Atlas é uma oferta de banco de dados como serviço do MongoDB para implementar e gerenciar bancos de dados entre provedores de nuvem. O Atlas automatiza muitas tarefas administrativas, como dimensionamento e backups.
    • A MongoDB Community é uma versão de código aberto do banco de dados, adequada para projetos de pequeno e médio porte que buscam uma solução NoSQL. Por ser de código aberto, é adequado para modificações e inovações, e oferece aos desenvolvedores uma comunidade robusta para obter suporte. No entanto, a versão Community não possui suporte oficial nem acordos de nível de serviço (SLAs), tem menos opções de segurança e oferece apenas ferramentas de gerenciamento limitadas.
    • MongoDB Enterprise Advanced é a versão premium e comercial do MongoDB Community. Oferece opções de segurança aprimoradas e um mecanismo de armazenamento em memória para oferecer suporte a casos de uso de nível empresarial.

    Principais conclusões

    • O MongoDB é um banco de dados NoSQL popular usado para armazenar dados estruturados, semiestruturados e não estruturados.
    • Em vez de usar tabelas, como em um banco de dados relacional tradicional, o MongoDB armazena dados em documentos JSON organizados por coleção.
    • Como o MongoDB não exige esquemas rígidos, ele permite um modelo de dados flexível que pode evoluir para acompanhar as mudanças na funcionalidade da aplicação.
    • O MongoDB foi originalmente projetado para armazenamento e recuperação rápidos no setor de veiculação de anúncios, com pouca preocupação com a consistência das transações ou a análise rápida de dados. Desenvolvimentos posteriores, como recursos de sharding, ampliaram os recursos do MongoDB.
    • Como o MongoDB oferece vantagens diferentes de um banco de dados relacional tradicional, os desenvolvedores geralmente buscam maneiras de obter o melhor de ambas as abordagens.

    MongoDB explicado

    O MongoDB é um banco de dados NoSQL que usa um modelo de dados orientado a documentos, no qual cada registro é um documento armazenado em uma coleção, em vez das linhas e colunas comuns em bancos de dados relacionais populares, como MySQL.

    O MongoDB armazena os documentos JSON usando um formato chamado BSON, ou JSON binário. A natureza não relacional desses documentos significa que eles podem armazenar (e o banco de dados pode processar) dados estruturados de aplicativos, bem como dados semiestruturados e não estruturados. Ao contrário dos bancos de dados relacionais, o MongoDB não usa esquemas rígidos. Por outro lado, os documentos são flexíveis e podem conter matrizes e documentos aninhados, suportando armazenamento de dados hierárquico e complexo.

    Ao lidar com conjuntos de dados extremamente grandes, bancos de dados de documentos, como o MongoDB, escalam horizontalmente ou distribuem os dados por vários nós ou clusters usando uma técnica chamada sharding. Esse modelo permite armazenamento e recuperação rápidos. Essa arquitetura faz sentido, visto que o MongoDB foi criado para veiculação de anúncios, onde potencialmente milhões de anúncios podem precisar ser exibidos em milhares de sites a qualquer momento. Não foi necessária uma análise direta entre anúncios, o que permitiu uma distribuição física dos dados.

    Bancos de dados hierárquicos de documentos são extremamente rápidos para operações de leitura, mas a análise de dados pode ser lenta porque os sistemas precisam analisar os dados em todas as entidades aninhadas. Por outro lado, os bancos de dados relacionais armazenam seus dados em tabelas separadas, e um único "objeto" pode ser referenciado em muitas tabelas dentro do banco de dados, permitindo operações analíticas mais eficientes em escala. Considerando essas diferentes vantagens, as equipes de desenvolvimento geralmente optam pelo melhor sistema de gerenciamento de dados para as necessidades atuais de sua aplicação. Ou podem escolher um banco de dados multimodal que forneça acesso SQL completo a dados de documentos relacionais e JSON, bem como a muitos outros tipos de dados.

    ACID vs. BASE

    A escolha dependerá das necessidades da sua aplicação.

    ACID (atomicidade, consistência, isolamento, durabilidade) BASE (disponibilidade básica, estado flexível, consistência eventual)

    Atomicidade: garante que uma transação inteira seja tratada como uma única unidade. Ou todas as alterações são bem-sucedidas, ou nenhuma delas é. Isso evita atualizações parciais que poderiam deixar seus dados em um estado inconsistente.

    Consistência: garante que o banco de dados faça a transição de um estado válido para outro após uma transação. Reforça as regras comerciais e a integridade dos dados.

    Isolamento: garante que transações simultâneas não interfiram umas nas outras. Cada transação parece ser executada isoladamente, mesmo que várias transações ocorram simultaneamente.

    Durabilidade: depois que uma transação é confirmada, as alterações são gravadas em armazenamento permanente e não são afetadas por falhas do sistema, como interrupções.

    Disponibilidade básica: prioriza a maximização da disponibilidade de dados. O sistema se esforça para permanecer operacional mesmo durante falhas parciais, permitindo que a maioria das operações de leitura e gravação sejam concluídas.

    Estado flexível: a consistência dos dados não é garantida imediatamente após uma operação de gravação. Pode haver um pequeno atraso antes que as alterações sejam refletidas em todas as réplicas, levando a inconsistências temporárias.

    Consistência eventual: com o tempo, a consistência é alcançada por meio de processos em segundo plano que sincronizam as alterações entre as réplicas.

    Vantagens:

    A alta integridade dos dados e a forte consistência tornam o ACID ideal para aplicações que exigem precisão, como transações financeiras.

    Vantagens:

    A alta disponibilidade e escalabilidade tornam o BASE ideal para aplicações que exigem alto tempo de atividade e capacidade de resposta, especialmente em sistemas distribuídos. Requisitos de consistência mais flexíveis permitem velocidades de gravação mais rápidas e melhor escalabilidade.

    Desvantagens:

    A sobrecarga de desempenho significa que manter as garantias ACID pode levar a velocidades de gravação mais lentas. Em ambientes altamente escaláveis, os requisitos de consistência rigorosos podem se tornar difíceis de gerenciar.

    Desvantagens:

    Inconsistências temporárias podem ocorrer durante a sincronização de dados, tornando o BASE menos adequado para aplicações onde a integridade estrita dos dados e a consistência imediata são essenciais.

    Como o MongoDB funciona?

    O MongoDB armazena dados em coleções, que são análogas às tabelas em bancos de dados relacionais. Cada coleção contém vários documentos, que podem variar em estrutura. Não é necessário declarar a estrutura dos documentos para o sistema, pois eles são autodescritivos, o que significa que cada documento contém metadados que descrevem cada um dos campos.

    Para melhorar o desempenho, o MongoDB oferece suporte à indexação em qualquer campo de um documento. Os índices permitem a execução eficiente de consultas e podem incluir índices primários e secundários. A linguagem de consulta do MongoDB oferece suporte a operações CRUD (criar, ler, atualizar, excluir) e permite agregações complexas, pesquisa de texto e consultas geoespaciais. Para ajudar a melhorar os tempos de resposta, o MongoDB fornece uma estrutura de agregação, que permite aos desenvolvedores configurar o processamento complexo de dados no lado do servidor. Isso significa que ele é capaz de fazer análises no cluster onde os dados residem, sem ter que movê-los para outra plataforma, como no Apache Spark ou Hadoop. Isso pode reduzir a quantidade de dados transferidos de e para os clientes.

    O MongoDB funciona para fornecer alta disponibilidade e melhorar o desempenho, oferecendo suporte a conjuntos de dados replicados. As réplicas podem ser usadas para balanceamento de carga, distribuindo operações de leitura e gravação entre todas as instâncias. Esses conjuntos de réplicas também fornecem redundância e aumentam a disponibilidade dos dados por meio de várias cópias dos dados em diferentes servidores de banco de dados. Em caso de falha ou manutenção de hardware, os conjuntos de réplicas permitem que o MongoDB forneça failover automático e redundância de dados.

    Para escalabilidade, o MongoDB oferece suporte ao dimensionamento horizontal por meio do sharding, que é uma maneira de distribuir dados por vários bancos de dados em várias máquinas. Um cluster fragmentado pode consistir em muitos conjuntos de réplicas. O sharding é configurado definindo uma chave de fragmentação, que determina como os dados são distribuídos pelos fragmentos. Essa técnica pode ajudar a gerenciar grandes conjuntos de dados e operações de alto rendimento, dividindo o conjunto de dados e a carga em vários servidores.


    Como o sharding funciona

    Cada shard é uma instância de banco de dados independente que hospeda subconjuntos dos dados de um banco de dados fragmentado.

    Diagrama de como o sharding funciona
    O diagrama mostra um fluxo unidirecional de uma aplicação cliente na parte superior para os fragmentos do banco de dados na parte inferior.

    MongoDB vs. RDBMS

    Cada tipo de banco de dados (relacional, como MySQL, Postgres e Oracle Database, ou orientado a documentos, como CouchDB, DynamoDB e MongoDB) possui pontos fortes e fracos, e a escolha entre eles geralmente depende dos requisitos e restrições específicos da aplicação que está sendo desenvolvida.

    Um sistema de gerenciamento de banco de dados relacional (RDBMS) usa um SQL (Structured Query Language), enquanto o formato orientado a documentos do MongoDB usa APIs de armazenamento de documentos. Mesmo assim, o MongoDB Query Language (MQL) utiliza uma linguagem semelhante a JavaScript com operações como criar, ler, atualizar e excluir documentos.

    O MongoDB não possui o conceito de tabelas e linhas e não tem esquemas, portanto, há menos estrutura a ser definida antes que o banco de dados possa ser utilizado. No entanto, sem um esquema central, cada aplicação que acessa as coleções precisa entender o documento. Portanto, o "esquema" está no código da aplicação e não está definido no banco de dados. Se um aplicativo alterar o esquema, outros aplicativos podem apresentar problemas. Em comparação com bancos de dados relacionais, onde um esquema é essencialmente um modelo para o SGBD relacional e os relacionamentos entre os dados são definidas claramente, o MongoDB não possui o conceito inerente de relacionamentos entre os dados.

    A flexibilidade dos armazenamentos de dados é notável, pois o MongoDB usa diferentes formatos para dados, como armazenamentos de chave-valor, gráficos e documentos, e as estruturas de dados podem mudar ao longo do tempo. Isso difere de um RDBMS, que usa definições rígidas, hierarquias e procedimentos de validação baseados nelas para ajudar a garantir a integridade dos dados.

    Embora a configuração de uma instância básica do MongoDB seja simples, configurar e manter um cluster MongoDB distribuído em grande escala com fragmentação e réplicas pode ser complexo e requer um bom entendimento de sua arquitetura e opções de configuração.


    Principais Diferenças

    Relacional MongoDB
    Modelo de dados Usa tabelas com linhas e colunas fixas, e os dados são estruturados em um esquema predefinido. Usa coleções de documentos, que são estruturas semelhantes a JSON com esquemas dinâmicos.
    Flexibilidade do esquema Exige um esquema predefinido que deve ser configurado antes que os dados possam ser adicionados. Tem um esquema dinâmico. É possível adicionar novos campos a um documento sem afetar os demais documentos da coleção.
    Linguagem de consulta Usa SQL, que é muito eficiente para consultas complexas, para definir e manipular dados. Usa uma linguagem de consulta baseada em documentos que é considerada mais intuitiva, mas menos completa e versátil do que o SQL.
    Escalonamento Tradicionalmente, a escalabilidade é vertical, adicionando mais potência à máquina existente, embora recursos maduros, como sharding e Oracle Real Application Clusters, ofereçam suporte para dimensionamento horizontal. Projetado para escalar horizontalmente em várias máquinas usando sharding, que distribui dados em um cluster de máquinas.
    Transações Oferece suporte a transações com múltiplas linhas e é compatível com ACID, tornando-o adequado para aplicações onde a perda ou corrupção de dados é inadmissível. Oferece suporte a transações de múltiplos documentos, mas é conhecido por ser menos robusto do que a maioria dos bancos de dados relacionais tradicionais, especialmente em dados distribuídos.
    Desempenho Projetado para garantir transações precisas, mas o desempenho pode ser inferior para grandes volumes de dados. No entanto, o desempenho analítico geralmente é melhor. Projetado para alto desempenho de leitura em grandes volumes de dados.

    Por que usar o MongoDB?

    O MongoDB é adequado para uma ampla gama de usos, desde aplicações CRUD simples, como blogs ou um aplicativo de anotações, até plataformas complexas, como o Amazon Prime. O MongoDB é frequentemente selecionado para sistemas de gerenciamento de conteúdo (CMSes), aplicativos de jogos em que a sincronização de dados deve ser rápida e dados biométricos de assistência médica, entre muitos outros casos de uso. Sua versatilidade o tornou um elemento fundamental de conjuntos de ferramentas de desenvolvimento de código aberto populares MEAN e MERN.

    Escolha quando precisar de:

    • Flexibilidade. O formato de documento JSON do MongoDB oferece uma maneira simples e intuitiva de representar estruturas de dados hierárquicas que, de outra forma, exigiriam junções complexas por meio de consultas SQL.
    • Disponibilidade. Os recursos de banco de dados distribuído do MongoDB oferecem alta disponibilidade, mesmo com conjuntos de dados grandes e que mudam com frequência.
    • Escalabilidade. O MongoDB foi projetado para coletar, processar e analisar conjuntos de dados grandes, de rápida mudança e diversificados.
    • Desempenho. A otimização de desempenho por meio de métodos como replicação, sharding e outros torna o MongoDB uma escolha viável para grandes aplicações em áreas como mídia e entretenimento.
    • Compatibilidade. Os documentos do tipo JSON do MongoDB oferecem fácil compatibilidade com tipos de dados familiares encontrados em linguagens de programação populares. Além disso, as bibliotecas de cliente do MongoDB oferecem drivers para a maioria das linguagens de programação, como PHP, .NET, JavaScript e muitas outras.
    • Suporte à comunidade. O MongoDB é o banco de dados padrão em muitas plataformas de desenvolvimento de código aberto, com forte suporte da comunidade.

    Recursos do MongoDB

    O MongoDB se tornou popular entre os desenvolvedores em parte devido à sua API intuitiva, modelo de dados flexível e recursos que incluem:

    • Consultas ad hoc. O MongoDB oferece suporte a consultas por campo, intervalo e expressão regular que podem retornar documentos inteiros, campos específicos de documentos ou amostras aleatórias de resultados.
    • Indexação. O MongoDB oferece suporte a vários tipos diferentes de índices, incluindo campo único, composto (múltiplos campos), de múltiplas chaves (matriz), geoespacial, de texto e hash.
    • Replicação. O MongoDB oferece alta disponibilidade com conjuntos de réplicas, que incluem duas ou mais cópias dos dados. As gravações são gerenciadas pela réplica primária, enquanto qualquer réplica pode atender às solicitações de leitura. Se a réplica primária falhar, uma réplica secundária é promovida a réplica primária.
    • Escalabilidade. O dimensionamento em bancos de dados MongoDB é aprimorado com o sharding, pois os clusters armazenam apenas uma parte dos dados em uma coleção. As chaves de sharding determinam a distribuição desses dados.
    • Balanceamento de carga. O MongoDB pode ser dimensionado vertical e horizontalmente e, graças a clusters com sharding, o balanceamento de carga pode ser tratado pela estrutura básica do banco de dados. A replicação pode ser usada para reduzir cargas em servidores primários.
    • Armazenamento de arquivos. Os dados são armazenados em documentos que são facilmente mapeados para objetos na maioria das linguagens de programação, proporcionando fácil acesso dentro das aplicações.
    • Processamento em lote O processamento de dados pode ser realizado de várias maneiras. Às vezes, isso acontece diretamente nos documentos e, em alguns casos, por meio de um método de gravação em lote que reduz o número de operações de rede.

    Vantagens do MongoDB

    A popularidade do MongoDB na comunidade de código aberto se deve às diversas maneiras pelas quais ele torna o desenvolvimento e a manutenção de aplicações mais intuitivos e escaláveis. Essas vantagens incluem:

    • Facilidade de uso para desenvolvedores. Os desenvolvedores costumam escolher o MongoDB porque é fácil de baixar ou acessar na nuvem, o que significa que podem começar rapidamente, em parte porque é mais fácil trabalhar com documentos do que criar um modelo de dados e trabalhar com tabelas.
    • Eficiência. O JSON oferece uma série de vantagens, com arquivos de documentos pequenos e conteúdo legível por humanos. O MongoDB codifica documentos em formato binário (BSON), que é mais compacto e mais rápido de analisar em comparação com texto simples.
    • Esquemas flexíveis. O modelo de dados de documentos do MongoDB permite esquemas flexíveis e autodescritivos, permitindo que os campos variem de documento para outro.
    • Linguagem de consulta simples. O MongoDB Query Language (MQL) foi projetado para ser fácil de usar para desenvolvedores, fornecendo a capacidade de realizar consultas complexas e índices para acelerar consultas comuns.
    • Nativo da nuvem. O MongoDB Atlas é um banco de dados nativo da nuvem, por isso recebe atualizações frequentes e se adapta rapidamente a novas tecnologias. Seu uso também facilita a migração de uma aplicação para a nuvem.

    Desvantagens do MongoDB

    Embora o MongoDB ofereça muitas vantagens, principalmente para aplicações que exigem flexibilidade e alto desempenho em meio a grandes volumes de dados, ele também pode apresentar muitas desvantagens.

    • Suporte a transações. O suporte a transações do MongoDB não é tão maduro ou robusto quanto o encontrado em bancos de dados relacionais tradicionais. Transações complexas, especialmente aquelas que abrangem várias operações, podem não apresentar um bom desempenho e serem difíceis de implementar no MongoDB.
    • Consistência dos dados. O uso de "consistência eventual" pelo MongoDB para conjuntos de réplicas pode levar a situações em que nem todos os usuários estão lendo os mesmos dados ao mesmo tempo. Para aplicações que exigem forte consistência, isso pode ser uma desvantagem séria.
    • Operações de junção. O MongoDB não suporta junções da mesma forma que os bancos de dados SQL. No entanto, oferece opções que executam uma função semelhante, embora geralmente sejam menos eficientes e possam levar a consultas mais complexas e desempenho mais lento, principalmente nos casos de relacionamentos complexos entre documentos.
    • Uso de memória. O MongoDB armazena seus dados e índices mais usados ​​na RAM, portanto, seu desempenho depende muito da disponibilidade de RAM suficiente. Como resultado, um banco de dados MongoDB pode consumir mais recursos de memória e, potencialmente, mais hardware do que outros bancos de dados.
    • Sobrecarga de armazenamento. O paradigma de documentos autocontidos usado pelo MongoDB pode levar a requisitos de armazenamento maiores em comparação com as tabelas altamente normalizadas em bancos de dados relacionais. Além disso, o esquema dinâmico do MongoDB pode causar redundância e fragmentação de dados, o que pode aumentar o uso de armazenamento e os custos.
    • Limitações de indexação. O MongoDB oferece suporte a muitas opções de indexação, mas a manutenção de um grande número de índices pode prejudicar o desempenho de gravação. Ele simplesmente não foi projetado para gravações frequentes, porque cada operação de gravação pode precisar atualizar vários índices, muitas vezes colocando o desempenho da consulta em conflito com o desempenho da gravação.
    • Custo. Em cenários em que alta disponibilidade e escalabilidade horizontal são necessárias, o custo associado à execução e manutenção de um cluster MongoDB, especialmente em ambientes de nuvem, pode ser significativo. A necessidade de muita RAM e armazenamento também pode aumentar os custos. Isso é especialmente verdadeiro em situações de alta disponibilidade, em que os bancos de dados de réplica exigem um número igual de recursos.

    Compatibilidade do MongoDB

    O MongoDB é um banco de dados NoSQL que funciona bem dentro desse ecossistema, mas também foi desenvolvido para interagir com outros tipos de sistemas de gerenciamento de banco de dados por meio de diversas ferramentas e conectores de integração de dados. Esse conjunto de ferramentas inclui uma infraestrutura ETL (extrair, transformar, carregar) para extrair e migrar dados do MongoDB. Isso é útil para enviar dados para um banco de dados relacional para relatórios e análises de dados complexas. As aplicações do MongoDB também podem se comunicar entre diferentes plataformas de banco de dados usando APIs REST.

    Execute cargas de trabalho do MongoDB no Oracle Autonomous Database.

    Um bom exemplo de compatibilidade com o MongoDB é a API de banco de dados Oracle para MongoDB, que permite aos desenvolvedores usar as ferramentas e drivers de código aberto do MongoDB conectados a um Oracle Autonomous JSON Database. Isso permite o acesso aos recursos multimodelo da Oracle e os ajuda a evitar a migração de dados para um banco de dados separado para análises, machine learning (ML) e análise espacial. Considere o Autonomous JSON Database como uma alternativa multimodal ao MongoDB Atlas. Geralmente, são necessárias poucas ou nenhuma alteração nas aplicações existentes.

    Migre cargas de trabalho do MongoDB para o Oracle Autonomous JSON Database

    Em vez de acessar a funcionalidade do MongoDB por meio de APIs, os desenvolvedores podem simplesmente migrar suas cargas de trabalho centradas em JSON para um Oracle Autonomous JSON Database na Oracle Cloud Infrastructure (OCI). Isso proporciona um serviço de banco de dados de documentos em nuvem para aplicações centradas em JSON, que apresenta APIs de documentos no estilo NoSQL (Simple Oracle Document Access, ou SODA, e Oracle Database API for MongoDB), escalabilidade sem servidor, transações ACID de alto desempenho, segurança abrangente e preços baixos conforme o uso. Não há tempo de inatividade porque a migração de MongoDB para o Oracle Autonomous JSON Database é realizada com o Oracle Cloud Infrastructure (OCI) GoldenGate.

    Conheça o Autonomous Database

    Os usuários do MongoDB agora têm uma maneira mais versátil de criar aplicações centradas em JSON. O Oracle Autonomous Database oferece aos desenvolvedores a flexibilidade de reagir às demandas de negócios usando uma única plataforma de dados que pode atender a todas as suas necessidades — permitindo que os desenvolvedores usem SQL, documentos JSON, grafos, dados geoespaciais, texto e vetores em um único banco de dados para criar rapidamente novos recursos.

    Além disso, um novo recurso revolucionário no Oracle Database, o JSON Relational Duality, oferece os benefícios das tabelas relacionais e dos documentos JSON, sem as desvantagens de nenhum dos dois modelos.

    O Autonomous Database oferece serviços de IA integrados e machine learning (ML) no banco de dados para aprimorar aplicativos com análise de texto e imagem, reconhecimento de fala ou recomendações personalizadas. Além disso, o Autonomous Database Select AI traduz automaticamente a linguagem natural em consultas ao banco de dados e permite que você tenha uma conversa contextual com o banco de dados, sem qualquer codificação personalizada ou operações manuais por meio de uma interface complexa. E como o banco de dados é totalmente autônomo, ele permite que as equipes de desenvolvimento se concentrem na criação de aplicativos, garantindo o tempo de atividade e protegendo os dados por meio de medidas de segurança automatizadas e monitoramento contínuo.

    Você pode comece hoje gratuitamente e até mesmo participar de um workshop para aprender a usar SQL, JSON e Oracle Graph no mesmo aplicativo.

    Com casos de uso que incluem plataformas de comércio eletrônico, aplicações de IoT e muito mais, o MongoDB comprovou sua versatilidade em diversos setores. Sua capacidade de lidar com diferentes tipos de dados e suportar consultas complexas o posiciona como um componente essencial das modernas arquiteturas de tecnologia. À medida que as empresas buscam extrair o máximo valor de seus dados, o MongoDB será fundamental para o sucesso.

    Os desenvolvedores e outros colaboradores podem se beneficiar de aplicações nativas da nuvem, projetadas especificamente para maximizar a agilidade, a escalabilidade e a eficiência. Saiba mais e confira outras 10 maneiras pelas quais a nuvem está cada vez melhor.

    Perguntas frequentes sobre o MongoDB

    Qual a diferença entre o MongoDB e SQL?

    O MongoDB salva dados não estruturados, que não são adequados para um SQL (Structured Query Language).

    O MongoDB é um idioma de backend?

    Não, mas pode ser usado como parte de uma aplicação web de backend.

    O MongoDB é uma linguagem ou uma estrutura?

    É um sistema de gerenciamento de banco de dados que usa dados não estruturados armazenados em documentos em vez de tabelas.