O que é MongoDB? Um guia por especialistas

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

MongoDB foi criado em 2007 por um casal de desenvolvedores que queriam rastrear números enormes - daí o nome - de pequenas transações no negócio de serviços de anúncios. O novo banco de dados, que inicialmente foi apelidado de 10gen, continha dados em um simples "bucket" de documentos de arquivos do tipo JSON, e era capaz de escalar muito rapidamente. Não precisava de muito de um modelo de dados ou simultaneidade de transação exata porque estava simplesmente contando impressões de anúncios e as apostas eram baixas.

No entanto, o MongoDB forneceu o tipo de simplicidade de banco de dados para o qual os desenvolvedores queriam. Foi lançado sob o modelo de desenvolvimento de código aberto em 2009, transferido para a SSPL (Server Side Public License) em 2018 e evoluiu para se tornar o armazenamento de dados padrão de fato para muitas pilhas de desenvolvimento de código aberto, com uma lista de clientes que inclui Expedia, Lyft, eBay e muito mais. Vamos ver o que faz isso funcionar.

O que é MongoDB?

MongoDB é um banco de dados de documentos de código aberto popular que é amplamente utilizado em aplicações web e móveis modernas. Ele é categorizado como um banco de dados NoSQL, o que significa que é preciso uma abordagem flexível e orientada a documentos para armazenar dados em vez de um método relacional tradicional baseado em tabela. Uma grande parte do apelo do MongoDB é sua simplicidade e foco no desenvolvedor. Por exemplo, as interações Mongo são definidas pela sigla CRUD, para criar, ler, atualizar, 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 de indexação para acesso e replicação de arquivos mais rápidos para proteção e disponibilidade de dados. Isso significa que os desenvolvedores podem projetar e criar 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, ele logo ganhou ampla popularidade como um armazenamento de dados flexível no desenvolvimento da web de código aberto. Ele evoluiu continuamente desde o 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 desenvolvedores é que, em relação aos bancos de dados relacionais mais populares, é intuitivo de usar e rápido de começar. O tipo de documentos JSON armazenados em MongoDB é mapeado para tipos de dados familiares encontrados em linguagens de programação populares, como dicionários JavaScript ou Python. Mongo também fornece um menu completo de bibliotecas de clientes com suporte ao driver para a maioria das linguagens de programação, incluindo PHP, .Net, Java, Python, Node.js e muitos outros.

Como todas as ferramentas de tecnologia, o MongoDB é forte em algumas áreas e fraco em outras. Ele foi projetado para rastrear a publicidade online, que exigia acesso rápido simultâneo, mas precisava apenas de precisão transacional solta e pouca análise em tempo real. Ainda hoje, o MongoDB é formado em torno dos princípios BASE, que representam disponibilidade, escalabilidade e eventual consistência. Como tal, o MongoDB geralmente é usado em cenários em que alta disponibilidade e escalabilidade são as principais considerações de design. Por outro lado, para trabalhos como operações financeiras ou em ambientes corporativos de missão crítica, os desenvolvedores geralmente optam por um banco de dados relacional. Eles oferecem transações ACID (atomicidade, consistência, isolamento e durabilidade) para ajudar a garantir a confiabilidade e a consistência das operações do banco de dados. Mais recentemente, no entanto, 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 de funcionamento do MongoDB, descrição abaixo:
Como o MongoDB funciona

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

  • As aplicações cliente em várias 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, de réplica ou com sharding.
    3. Os arquivos de dados contêm os documentos reais no banco de dados MongoDB.
    4. O sistema de armazenamento de chunk é onde os arquivos são divididos em seções de tamanho fixo e armazenados
    O diagrama ilustra o fluxo de dados básico entre as aplicações e o banco de dados MongoDB.

    Ambientes 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.

    • MongoDB Atlas é uma oferta de banco de dados como serviço da MongoDB para implementar e gerenciar bancos de dados entre provedores de nuvem. O Atlas automatiza muitas tarefas administrativas, como dimensionamento e backups.
    • A Comunidade MongoDB é uma versão de código aberto do banco de dados adaptada para projetos de pequeno e médio porte que procuram uma solução NoSQL. Como é open source, é adequado para modificação e inovação, e oferece aos desenvolvedores uma comunidade robusta para encontrar assistência. No entanto, a versão comunitária carece de apoio oficial e de acordos de nível de serviço (SLAs), tem menos opções de segurança e oferece apenas ferramentas de gestão limitadas.
    • MongoDB Enterprise Advanced é a versão premium, disponível comercialmente da Comunidade MongoDB. Ele oferece opções de segurança aprimoradas e um mecanismo de armazenamento na memória para oferecer suporte a casos de uso de nível empresarial.

    Principais conclusões

    • 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 em coleções.
    • Como o MongoDB não requer esquemas rígidos, ele permite um modelo de dados flexível que pode evoluir para corresponder às alterações na funcionalidade da aplicação.
    • O MongoDB foi originalmente projetado para armazenamento e recall rápidos no negócio de serviços de anúncios, com pouca consideração pela consistência da transação ou pela análise rápida de dados. Desenvolvimentos posteriores, como recursos de compartilhamento, estendem os recursos do MongoDB.
    • Como o MongoDB oferece diferentes pontos fortes do que um banco de dados relacional tradicional, os desenvolvedores geralmente procuram maneiras de obter o melhor de ambas as abordagens.

    MongoDB explicado

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

    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 de aplicações estruturados, bem como dados semiestruturados e não estruturados. Ao contrário dos bancos de dados relacionais, o MongoDB não usa esquemas rígidos. Em vez disso, os documentos são flexíveis e podem conter matrizes e documentos aninhados, permitindo o armazenamento de dados complexos e hierárquicos.

    Ao tratar conjuntos de dados extremamente grandes, documente bancos de dados, como MongoDB, expanda ou distribua dados entre 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, já que o MongoDB foi criado para veiculação de anúncios, onde potencialmente milhões de anúncios podem precisar ser chamados em milhares de sites a qualquer momento. Não houve necessidade inerente de analisar um anúncio contra outro, o que permitiu que os dados fossem distribuídos e separados fisicamente.

    Os bancos de dados de documentos hierárquicos são muito rápidos para operações de leitura, mas a análise de dados pode ser lenta porque os sistemas devem analisar 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. Dadas essas diferenças, as equipes de desenvolvimento geralmente optam pelo melhor sistema de gerenciamento de dados para as necessidades atuais de suas aplicações. Ou eles podem escolher um banco de dados multimodal que forneça acesso SQL completo a dados de documentos relacionais e JSON, bem como muitos outros tipos de dados.

    ACID vs. BASE

    O que você escolher depende das necessidades da sua aplicação.

    ACID (atomicidade, consistência, isolamento, durabilidade) BASE (basicamente disponível, estado suave, eventualmente consistente)

    Atomicidade: garante que uma transação inteira seja tratada como uma única unidade. Todas as mudanças são bem-sucedidas ou nenhuma delas. Isso evita atualizações parciais que podem 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. Impõe as regras de negócios e a integridade dos dados.

    Isolamento: Garante que as transações simultâneas não interfiram entre si. Cada transação parece ser executada isoladamente, mesmo que várias transações ocorram simultaneamente.

    Durabilidade: Depois que uma transação é submetida a commit, as alterações são gravadas no armazenamento permanente e não serão afetadas por falhas do sistema, como falhas.

    Basicamente disponível: Foca na 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 prossiga.

    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.

    Eventualmente consistente: Com o tempo, a consistência é obtida por meio de processos em segundo plano que sincronizam alterações entre réplicas.

    Prós:

    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.

    Prós:

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

    Contras:

    A sobrecarga de desempenho significa que manter as garantias ACID pode levar a velocidades de gravação mais lentas. Requisitos rigorosos de consistência podem se tornar desafiadores de gerenciar em ambientes altamente escaláveis.

    Contras:

    Incoerências temporárias podem ocorrer durante a sincronização de dados, tornando o BASE menos adequado para aplicações em que a integridade rigorosa dos dados e a consistência imediata são críticas.

    Como o MongoDB funciona?

    O MongoDB armazena dados em coleções, que são análogos às tabelas em bancos de dados relacionais. Cada coleção contém vários documentos, que podem variar em estrutura. Não há necessidade de declarar a estrutura de documentos para o sistema, pois os documentos são autodescritivos, o que significa que cada documento contém metadados que descrevem cada campo dentro do documento.

    Para melhorar o desempenho, o MongoDB suporta indexação em qualquer campo de um documento. Os índices suportam a execução eficiente de consultas e podem incluir índices primários e secundários. A linguagem de consulta do MongoDB suporta operações CRUD (criar, ler, atualizar, excluir) e permite agregação complexa, 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 de dados complexos no lado do servidor. Isso significa que ele é capaz de fazer análises no cluster onde os dados residem, sem precisar movê-los para outra plataforma, como no Apache Spark ou Hadoop. Isso pode reduzir a quantidade de dados transferidos de e para clientes.

    O MongoDB trabalha para fornecer alta disponibilidade e melhorar o desempenho suportando conjuntos de dados de réplica. As réplicas podem ser usadas para balanceamento de carga distribuindo operações de leitura e gravação em todas as instâncias. Esses conjuntos de réplicas também fornecem redundância e aumentam a disponibilidade de dados por meio de várias cópias de 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 entre vários bancos de dados em várias máquinas. Um cluster fragmentado pode consistir em muitos conjuntos de réplicas. O sharding é configurado pela definição de uma chave de shard, que determina como os dados são distribuídos entre os shards. Essa técnica pode ajudar a gerenciar grandes conjuntos de dados e operações de alto rendimento, dividindo o conjunto de dados e carregando em vários servidores.


    Como o sharding funciona

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

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

    MongoDB x RDBMS

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

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

    MongoDB não tem conceito de tabelas e linhas e não tem esquemas; portanto, há menos estrutura a ser definida para que o banco de dados possa ser usado. Sem esquema central, no entanto, 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 uma aplicação alterar o esquema, outras poderão ser quebradas. Em comparação com bancos de dados relacionais, em que um esquema é essencialmente um plano gráfico para o RDBMS e a organização de dados e a inter-relação são definidas explicitamente, o MongoDB não tem o conceito inerente de relacionamentos entre 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 com o tempo. Isso difere de um RDBMS, que usa definições rígidas, hierarquias e procedimentos de validação baseados neles para ajudar a garantir a integridade dos dados.

    Embora a configuração de uma instância básica do MongoDB seja simples, a configuração e a manutenção de um cluster MongoDB distribuído em larga escala com sharding e réplicas podem ser complexas e exigem um bom entendimento de suas opções de arquitetura e 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 Requer um esquema predefinido que deve ser configurado para que os dados possam ser adicionados. Tem um esquema dinâmico. Novos campos podem ser adicionados a um documento sem afetar todos os outros documentos na 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.
    Dimensionamento Tradicionalmente, a escala é 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 Suporta transações multilinha e é compatível com ACID, tornando-o adequado para aplicativos em que nenhum dado pode ser perdido ou corrompido. Suporta transações de vários documentos, mas é conhecido por ser menos robusto do que a maioria dos bancos de dados relacionais tradicionais, especialmente em dados distribuídos.
    Desempenho Criado para garantir transações precisas, mas o desempenho pode ser menor para grandes volumes de dados. No entanto, o desempenho analítico geralmente é melhor. Criado 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 um blog ou 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 uma pedra angular das pilhas de desenvolvimento populares de código aberto, como MEAN e MERN.

    Escolha quando precisar:

    • Flexibilidade. O formato de documento JSON do MongoDB fornece uma maneira simples e intuitiva de representar estruturas de dados hierárquicas que, de outra forma, exigiriam junções complicadas por meio de consultas SQL.
    • Disponibilidade. Os recursos de banco de dados distribuído do MongoDB oferecem alta disponibilidade, mesmo com grandes conjuntos de dados que mudam constantemente.
    • Escalabilidade. O MongoDB foi projetado para coletar, processar e analisar conjuntos de dados grandes, de rápida mudança e diversos.
    • 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 fornecem compatibilidade fácil com tipos de dados familiares encontrados em linguagens de programação populares. Além disso, as bibliotecas de clientes MongoDB oferecem drivers para a maioria das linguagens de programação, como PHP, .Net, JavaScript e muito mais.
    • Suporte à comunidade. MongoDB é um armazenamento de dados padrão de fato em muitas pilhas de desenvolvimento de código aberto, em que o suporte da comunidade é abundante.

    Recursos do MongoDB

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

    • Consultas ad hoc. O MongoDB suporta consultas de campo, intervalo e expressão regular que podem retornar documentos inteiros, campos específicos de documentos ou amostras aleatórias de resultados.
    • Indexação. MongoDB suporta vários tipos de índice diferentes, incluindo campo único, composto (vários campos), multiqueia (matriz), geoespacial, texto e hash.
    • Replicação. O MongoDB fornece alta disponibilidade com conjuntos de réplicas, incluindo duas ou mais cópias dos dados. As gravações são tratadas pela réplica principal, enquanto qualquer réplica pode atender a solicitações de leitura. Se a réplica primária falhar, uma réplica secundária será promovida para se tornar 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 fragmentação 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 dos aplicativos.
    • Processamento em lote O processamento de dados pode ser realizado de várias maneiras. Às vezes, isso é feito nos próprios documentos, outras vezes com um método de gravação em massa que reduz as operações de rede.

    Vantagens do MongoDB

    A popularidade do MongoDB com a comunidade de código aberto é atribuída às muitas maneiras pelas quais ele torna o desenvolvimento e a manutenção de aplicativos mais intuitivos e escaláveis. Essas vantagens incluem:

    • Facilidade de uso para desenvolvedores. Os desenvolvedores geralmente escolhem o MongoDB porque é fácil fazer download ou acessar na nuvem, o que significa que eles podem começar rapidamente, em parte porque é mais fácil trabalhar com documentos em vez de criar um modelo de dados e trabalhar com tabelas.
    • Eficiência. O JSON oferece uma série de eficiências, com pequenos arquivos de documentos 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 sem formatação.
    • Esquemas flexíveis. O modelo de dados de documentos do MongoDB permite esquemas flexíveis e auto-descritivos, permitindo que os campos variem de documento para documento.
    • Linguagem de consulta simples. A Linguagem de Consulta (MQL) MongoDB foi projetada para ser fácil de usar para desenvolvedores, fornecendo a capacidade de consultas e índices complexos acelerarem as consultas comumente usadas.
    • 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, especialmente para aplicações que exigem flexibilidade e alto desempenho em meio a grandes volumes de dados, ele apresenta muitas desvantagens potenciais.

    • Suporte a transações. O suporte transacional 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 ter um bom desempenho e podem ser desafiadoras de implementar no MongoDB.
    • Consistência dos dados. O uso da "consistência eventual" do MongoDB para conjuntos de réplicas pode levar a situações em que todos os usuários não estão lendo os mesmos dados ao mesmo tempo. Para aplicações que exigem consistência forte, isso pode ser uma séria desvantagem.
    • Operações de junção. O MongoDB não suporta junções da maneira que os bancos de dados SQL fazem. No entanto, ele 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, especialmente quando se trata 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 de ter 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 documento independente 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 que podem aumentar o uso e os custos do armazenamento.
    • Limitações de indexação. O MongoDB suporta 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 criado 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 relação ao desempenho de gravação.
    • Custo. Em cenários em que a alta disponibilidade e o dimensionamento horizontal são necessários, 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

    MongoDB é um banco de dados NoSQL que funciona bem nesse ecossistema, mas também foi criado para interagir com outros tipos de sistemas de gerenciamento de banco de dados por meio de várias 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 e vice-versa. Isso é útil para enviar dados para um banco de dados relacional para relatórios e análises de dados complexas. As aplicações MongoDB também podem se comunicar em diferentes plataformas de banco de dados usando APIs REST.

    Executando cargas de trabalho MongoDB no Oracle Autonomous Database

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

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

    Em vez de acessar a funcionalidade 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 fornece um serviço de banco de dados de documentos em nuvem para aplicativos centrados em JSON que apresenta APIs de documentos no estilo NoSQL (Simple Oracle Document Access, ou SODA, e Oracle Database API for MongoDB), dimensionamento sem servidor, transações ACID de alto desempenho, segurança abrangente e baixo preço de pagamento por uso. Não há tempo de inatividade porque a migração de MongoDB para o Oracle Autonomous JSON Database é obtida 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 dos negócios usando uma única plataforma de dados que pode ajudar a atender a todas as suas necessidades, permitindo que os desenvolvedores usem SQL, documentos JSON, gráficos, geoespaciais, textos 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 de tabelas relacionais e documentos JSON, sem as compensações de qualquer modelo.

    O Autonomous Database oferece serviços integrados de IA e machine learning (ML) no banco de dados para aprimorar aplicações com análise do texto e da imagem, reconhecimento da fala ou recomendações personalizadas. Além disso, o Autonomous Database Select AI traduz automaticamente o idioma natural em consultas de banco de dados e permite ter uma conversa contextual com o banco de dados, sem qualquer codificação personalizada ou operações manuais por meio da interface complexa. E como o banco de dados é totalmente autônomo, ele permite que as equipes de desenvolvimento se concentrem na criação de aplicações, 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 experimentar um workshop para aprender a usar SQL, JSON e Oracle Graph na mesma aplicação.

    Com casos de uso que incluem plataformas de ecommerce, aplicativos IoT e muito mais, o MongoDB provou sua versatilidade em todos os setores. Sua capacidade de lidar com diversos tipos de dados e oferecer suporte a consultas complexas o posiciona como um componente capaz de pilhas de tecnologia modernas. À medida que as empresas buscam extrair o máximo valor de seus dados, o MongoDB será fundamental para o sucesso.

    Os desenvolvedores e seus colegas de negócios podem se beneficiar de aplicações nativas da nuvem que são projetadas especificamente para maximizar a agilidade, a escalabilidade e a eficiência. Saiba mais e confira mais 10 maneiras pelas quais a nuvem está melhorando.

    Perguntas frequentes sobre o MongoDB

    Qual a diferença entre o SQL e MongoDB?

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

    MongoDB é uma linguagem de back-end?

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

    O MongoDB é uma linguagem ou uma estrutura?

    Trata-se de um sistema de gerenciamento de banco de dados que utiliza dados não estruturados armazenados em documentos, em vez de tabelas.