MongoDB: Introdução ao MongoDB

O MongoDB é o banco de dados de documentos mais popular do mundo — ele torna a modelagem flexível de dados e as gravações de alto rendimento simples e eficientes.

Este tutorial foi elaborado para desenvolvedores de back-end com conhecimentos básicos de JavaScript e Node.js. Ele começa com os fundamentos do NoSQL e orienta você na criação de aplicativos prontos para produção usando o MongoDB e o Mongoose.

1. O que você vai aprender


2. A história real de um engenheiro de backend

(1) Desafio: os bancos de dados relacionais não conseguem acompanhar o ritmo

Alice é engenheira de back-end em uma empresa de comércio eletrônico internacional. Recentemente, ela recebeu uma solicitação urgente:

“Nossa tabela products já tem 2 milhões de registros. A equipe de operações precisa inserir 50 mil novos SKUs todos os dias, e cada SKU tem de 10 a 15 atributos dinâmicos (como cor, tamanho, capacidade da bateria e taxa de atualização da tela). Alterar a estrutura da tabela exige o bloqueio do banco de dados por duas horas, e a equipe de negócios já está ficando frustrada com a situação.”

Os problemas que ela enfrenta:

Questão Impacto
Estrutura rígida da tabela Sempre que um novo atributo é adicionado, é necessária uma instrução ALTER TABLE, o que afeta os serviços de produção
Explosão de campos NULL 90% dos campos estão NULL, o que desperdiça espaço de armazenamento
Baixo desempenho de JOIN Consultas com junção de várias tabelas levam 5 segundos ou mais para responder ao processar centenas de milhões de registros
Baixa taxa de transferência de gravação Alta sobrecarga para transações relacionais; as operações de inserção ficam lentas em condições de alta simultaneidade

(2) A solução do MongoDB

Reescreva o sistema de SKU utilizando um modelo de documento, no qual cada produto seja um documento separado no formato JSON.

JAVASCRIPT
// MongoDB Document Structure — One document represents an entire product record.
{
  _id: ObjectId("..."),
  sku: "PHONE-X-256-BLK",
  title: "Smartphone X 256GB Black",
  price: 599.99,
  category: "Electronics",
  attributes: {           // Nested Documents,No need to JOIN
    color: "Black",
    storage: "256GB",
    screen: "6.5 inch OLED",
    battery: "4500mAh",
    refresh_rate: "120Hz"
  },
  tags: ["5g", "amoled", "fast-charging"],  // Array Fields
  stock: { warehouse_1: 50, warehouse_2: 30 },
  created_at: ISODate("2026-07-01T10:00:00Z")
}

(3) Receita

Dimensão Relacional (MySQL) MongoDB
Adicionar um campo ALTER TABLE (bloqueio da tabela) Inserir um novo documento diretamente
Armazenamento de campos vazios Ocupa espaço Não ocupa espaço
Dados heterogêneos Requer uma coluna JSON ou uma tabela EAV Suporte nativo
Escalabilidade horizontal Complexa (fragmentação de banco de dados e tabelas) Fragmentação integrada
Taxa de transferência de gravação 5.000 operações/s Mais de 50.000 operações/s

3. O surgimento dos bancos de dados NoSQL

Visão geral do conceito: Os bancos de dados NoSQL (Not Only SQL) surgiram no final da década de 2000, impulsionados pela explosão de dados na internet. Os bancos de dados relacionais tradicionais revelaram três grandes gargalos ao lidar com dados na escala de petabytes, milhões de conexões simultâneas e dados heterogêneos: esquemas fixos incapazes de se adaptar à diversidade de dados, dificuldades no escalonamento horizontal e desempenho extremamente baixo das operações JOIN com grandes volumes de dados. A filosofia central de design do NoSQL é: trocar restrições por desempenho — sacrificando a forte consistência e as junções complexas em troca de escalabilidade horizontal e alta taxa de transferência.

Como funciona: As quatro principais famílias de bancos de dados NoSQL apresentam, cada uma, modelos de dados e garantias de consistência diferentes. Os bancos de dados de chave-valor são os mais simples (operações de leitura e gravação em O(1)), os bancos de dados de documentos são os mais versáteis (modelo semelhante ao JSON), os bancos de dados orientados a colunas se destacam em cenários com grande volume de gravações e os bancos de dados de grafos se destacam em consultas relacionais. Como representante dos bancos de dados de documentos, o MongoDB oferece o melhor equilíbrio entre flexibilidade e recursos de consulta.

(1) Por que o NoSQL é necessário?

No final da década de 2000, o volume de dados provenientes de aplicativos da Internet disparou:

(2) As quatro principais famílias de NoSQL

Análise dos pontos-chave:

  1. Os armazenamentos chave-valor são os mais simples — consistem apenas em chaves e valores e não suportam consultas complexas, mas oferecem o melhor desempenho.
  2. O banco de dados de documentos é o mais versátil — ele suporta aninhamento, matrizes e índices secundários, o que o torna adequado para a maioria das aplicações web.
  3. Os bancos de dados orientados a colunas se destacam na ingestão de dados — os dados são armazenados por família de colunas, o que os torna adequados para séries temporais e dados de log
  4. Os bancos de dados de grafos se destacam na representação de relações — eles armazenam nós e arestas de forma nativa, o que os torna ideais para redes sociais e sistemas de recomendação.
Tipo Representante Modelo de dados Cenários típicos Consistência
Chave-Valor Redis chave → valor Armazenamento em cache, sessões, contadores Consistência eventual
Documentos MongoDB Documentos JSON/BSON CMS, comércio eletrônico, registros de IoT Configurável
Família de colunas Cassandra Família de colunas BigTable Dados de séries temporais, com grande volume de gravações Consistência eventual
Figura Neo4j Nós + Arestas Redes sociais, sistemas de recomendação Consistência forte
100%
graph LR
    A[NoSQL Database] --> B[Key-Value Store<br/>Redis/DynamoDB]
    A --> C[Document Database<br/>MongoDB/CouchDB]
    A --> D[Columnar Database<br/>Cassandra/HBase]
    A --> E[Graph Database<br/>Neo4j/ArangoDB]

    style A fill:#cce5ff
    style C fill:#d4edda
Tipo Exemplo Modelo de dados Cenários típicos
Chave-Valor Redis chave → valor Armazenamento em cache, sessões, contadores
Documentos MongoDB Documentos JSON/BSON CMS, comércio eletrônico, registros de IoT
Família de colunas Cassandra Família de colunas BigTable Dados de séries temporais, com grande volume de gravações
Figura Neo4j Nós + Arestas Redes sociais, sistemas de recomendação

Visão geral do conceito: O MongoDB detém a maior participação de mercado entre as quatro principais famílias de bancos de dados NoSQL (ocupando o primeiro lugar no ranking NoSQL da DB-Engines) por oferecer o melhor equilíbrio entre flexibilidade e funcionalidade. Em comparação com os armazenamentos de chave-valor, o MongoDB oferece suporte a índices secundários e pipelines de agregação; em comparação com bancos de dados orientados a colunas, o MongoDB oferece suporte a documentos aninhados e esquemas flexíveis; e, em comparação com bancos de dados de grafos, o MongoDB apresenta uma curva de aprendizado mais suave.

Principais vantagens do MongoDB Descrição Comparação com outros bancos de dados NoSQL
Modelo de dados semelhante ao JSON Não há curva de aprendizado para desenvolvedores front-end O Redis exige o aprendizado do comando key
Aninhamento de documentos Um único registro corresponde a uma árvore de objetos completa O Cassandra exige junções entre várias tabelas
Índices secundários Flexíveis, mantendo o desempenho das consultas O Redis não possui índices
Pipeline de agregação Processamento de dados mais potente do que o SQL O Cassandra possui recursos limitados de consulta
Driver oficial do Node.js + mongoose O ecossistema JS mais abrangente O melhor entre todos os bancos de dados NoSQL
Atlas Cloud Services Crie clusters globais com um único clique Custos elevados com hospedagem própria e operações

4. História e evolução das versões do MongoDB

Visão geral do conceito: O MongoDB foi criado pela 10gen (atualmente MongoDB Inc.) em 2007 e lançado como código aberto em 2009. Desde seu uso inicial como um simples armazenamento de documentos, passando pelo suporte a transações com múltiplos documentos na versão 4.0, até o suporte à pesquisa vetorial na versão 7.0, o MongoDB evoluiu de um “banco de dados NoSQL incapaz de lidar com transações complexas” para um banco de dados de uso geral que “oferece tanto modelagem flexível quanto conformidade com o modelo ACID”.

Linha do tempo evolutiva: O desenvolvimento do MongoDB pode ser dividido em três fases: a fase de recursos básicos (1.x–3.x: CRUD básico + conjuntos de réplicas + particionamento), a fase de recursos empresariais (4.x–5.x: transações com múltiplos documentos + coleções de séries temporais + pesquisa Atlas) e a fase de evolução inteligente (6.x–8.x: pesquisa vetorial + dados criptografados na consulta + sem servidor).

Data Evento Importância
2007 Dwight Merriman, Eliot Horowitz e Kevin Ryan fundaram a 10gen Lançamento do projeto
2009 Lançamento do MongoDB 1.0 (baseado em C++) Primeiro lançamento de código aberto
2013 A 10gen passa a se chamar MongoDB Inc. Destaque da marca
2014 Lançamento do Atlas Cloud Service Transformação nativa da nuvem
2018 Lançamento da versão 4.0, com suporte a transações com múltiplos documentos (ACID) Resolução máxima de disputas
2020 Lançamento da versão 5.0: apresentação dos conjuntos de séries temporais e das APIs com controle de versão Otimizações para cenários de IoT
Lançado em julho de 2023 Suporte nativo para pesquisa vetorial A era da IA/LLM
2026 Versão 8.0 (Atual candidata a LTS) Versão estável mais recente

(1) 4.1 Origens

(2) 4.2 Principais recursos do MongoDB 7.x

100%
graph TB
    A[MongoDB 7.0 Key Features] --> B[Document Model<br/>BSON + Nesting]
    A --> C[Aggregation Pipeline<br/>$facet/$bucket/$lookup]
    A --> D[Transactions<br/>Multiple Documents ACID]
    A --> E[Change Streams<br/>Real-Time Change Monitoring]
    A --> F[Atlas Search<br/>Full Text + Vector Search]
    A --> G[Time Series<br/>IoT Scene Optimization]

    style A fill:#cce5ff

(3) 4.3 Métodos de implantação

Visão geral do conceito: O MongoDB oferece quatro opções de implantação — o serviço em nuvem Atlas (sem sobrecarga operacional), a implantação em um único nó (para desenvolvimento e aprendizado), conjuntos de réplicas (para alta disponibilidade em produção) e clusters fragmentados (para escalonamento horizontal de grandes conjuntos de dados). As principais considerações na hora de escolher uma opção de implantação são: volume de dados, simultaneidade, requisitos de disponibilidade e capacidades operacionais.

Método de implantação Casos de uso Vantagens Volume de dados
Serviços em nuvem da Atlas Pessoas físicas / Pequenas e médias empresas / Corporações multinacionais Não requer manutenção, implantação global, backups automáticos Escalabilidade elástica
Versão autônoma hospedada localmente Desenvolvimento e aprendizado locais Controle total, custo zero < 1 TB
Conjunto de réplicas auto-hospedado Ambiente de produção Alta disponibilidade, failover automático < 8 TB por fragmento
Cluster fragmentado desenvolvido internamente Grandes volumes de dados, alta taxa de transferência Escalonamento horizontal, armazenamento na escala de petabytes Escala de petabytes
Implantação do Docker CI/CD, Testes locais Início rápido, Reprodutível Nível de desenvolvimento

▶ Exemplo: Três maneiras de se conectar ao MongoDB

BASH
# 1. mongosh Connect Atlas Cloud Services
mongosh "mongodb+srv://cluster0.mongodb.net/mydb" --username alice

# 2. mongosh Connect to a self-hosted local replica set
mongosh "mongodb://localhost:27017/mydb"

# 3. mongosh Connect Docker Container
mongosh "mongodb://192.168.1.100:27017/mydb"

5. Modelo de documento x Modelo relacional

Explicação do conceito: O modelo de documento e o modelo relacional são dois paradigmas de modelagem de dados fundamentalmente diferentes. O modelo relacional divide os dados em várias tabelas, que são unidas em tempo de execução por meio de operações JOIN; o modelo de documento incorpora os dados relacionados em um único documento e os retorna em uma única consulta. Cada modelo tem suas próprias vantagens e desvantagens — o modelo de documento é adequado para cenários com dados coesos e mudanças frequentes no esquema, enquanto o modelo relacional é adequado para cenários com relações complexas entre os dados e forte consistência transacional.

Como funciona: O modelo relacional segue um projeto normalizado — cada dado é armazenado apenas uma vez e vinculado por meio de referências de chave estrangeira. O modelo de documento segue um projeto desnormalizado — os dados que são frequentemente acessados em conjunto são incorporados no mesmo documento, trocando redundância por desempenho nas consultas. O MongoDB suporta aninhamento de documentos em até 100 níveis de profundidade, com um tamanho máximo de documento de 16 MB, o que é suficiente para atender às necessidades de modelagem de dados da maioria das aplicações web.

(1) Principais diferenças

100%
graph TB
    subgraph Relational Model
        T1[users Table<br/>id, name, email] --> J1[JOIN]
        T2[orders Table<br/>id, user_id, total] --> J1
        T3[order_items Table<br/>id, order_id, product_id] --> J1
        J1 --> R[Search Results<br/>Must be merged at runtime]
    end

    subgraph Document Model
        D1[orders Gathering<br/>A document = One order<br/>Includes user + items] --> R2[Search Results<br/>One query returns]
    end

    style J1 fill:#f8d7da
    style R2 fill:#d4edda

(2) Comparação entre a terminologia relacional e a do MongoDB

Termos relacionais Termos do MongoDB Descrição
Banco de dados Banco de dados Banco de dados
Tabela Coleção Tabela / Coleção
Linha Documento Linha / Documento
Coluna Campo Coluna / Campo
Chave primária _id Chave primária (ObjectId gerado automaticamente)
Chave estrangeira Referência / Incorporação Chave estrangeira / Documento incorporado
JUNÇÃO $lookup / embed Junção de tabelas / Aninhamento de documentos
Índice Índice Índice
Transação Transação (4.0+) Transação

(3) Quando usar o MongoDB e quando usar o SQL?

Explicação do conceito: O MongoDB e o SQL não são mutuamente exclusivos — muitos sistemas de produção utilizam ambos (persistência poliglota). O MongoDB é adequado para cenários com mudanças frequentes no esquema e alta taxa de gravação, enquanto o SQL é adequado para cenários que exigem forte consistência transacional e relações complexas. O importante é identificar em qual categoria se enquadra o seu cenário de negócios.

Cenário Recomendação Motivo
Alterações frequentes no esquema (CMS, catálogo de produtos) ✅ MongoDB Os documentos suportam, por natureza, dados heterogêneos
Alta taxa de transferência de gravação (logs, IoT) ✅ MongoDB Atomicidade no nível do documento, sem bloqueios de transação
Juntas complexas entre várias tabelas (ERP, setor bancário) ⚠️ Use com cautela A função $lookup ainda não está tão madura quanto o JOIN
Forte consistência transacional (finanças, estoque) ⚠️ MongoDB 4.0+ Compatível, mas com perda de desempenho
OLAP para grandes volumes de dados (Data Warehouse) ❌ Use com cautela ClickHouse / BigQuery são opções melhores
Esquema fixo (Pedidos, Usuários) ✅ Também é aceitável usar SQL Depende das preferências da equipe

Abordagem híbrida: Use o MySQL para os dados essenciais do negócio (usuários, pedidos, pagamentos) a fim de garantir a consistência transacional; use o MongoDB para a modelagem flexível de registros de comportamento, catálogos de produtos e dados de conteúdo. Sincronize os dados por meio de filas de mensagens ou pipelines de ETL.


6. Serviço em nuvem MongoDB Atlas

Visão geral do conceito: O MongoDB Atlas é um serviço oficial de banco de dados em nuvem totalmente gerenciado, disponível nas três principais plataformas de nuvem: AWS, Azure e Google Cloud. O principal valor do Atlas reside em sua abordagem de “manutenção zero” — ele implanta automaticamente conjuntos de réplicas, realiza backups, gerencia o failover, monitora e emite alertas, além de aplicar patches de segurança. Para equipes sem um DBA dedicado, o Atlas pode reduzir o tempo operacional em 80%.

(1) O que é o Atlas?

O MongoDB Atlas é um serviço de banco de dados em nuvem totalmente gerenciado oferecido pela MongoDB, disponível nas três principais plataformas de nuvem: AWS, Azure e Google Cloud.

100%
graph LR
    A[Your App] --> B[Atlas Global Clusters]
    B --> C[Multi-Region Replicas<br/>Automatic Failover]
    B --> D[Automatic Backup<br/>PITR Point-in-Time Recovery]
    B --> E[Monitoring Alerts<br/>Performance Optimization Recommendations]
    B --> F[Security and Compliance<br/>SCRAM + TLS]

    style B fill:#d4edda

(2) Plano gratuito do Atlas

Recursos Quota gratuita
Armazenamento 512 MB
RAM Compartilhada
Região Qualquer
Backup Nenhum
Duração Grátis para sempre

▶ Exemplo 1: Criar um cluster do Atlas em 5 minutos

TEXT 📖 Somente leitura
1. Visit https://www.mongodb.com/cloud/atlas/register Register
2. Select "Build a Cluster" → "Shared" → "Free"
3. Selecting a Cloud Provider(AWS)and regions(We recommend choosing a location close to the target market.)
4. Cluster Name:Cluster0
5. Click "Create Cluster",Waiting 1-3 minutes
6. In "Database Access" Add a User(Username + Password)
7. In "Network Access" Add IP Whitelist(0.0.0.0/0 Allow all IP)
8. Click "Connect" → "Connect your application" → Get the connection string

(3) Três níveis de agrupamento

Nível Aplicável Preço
M0 Sandbox Aprendizado, Prototipagem Gratuito
M10 / M20 Produção em pequena escala A partir de ~$60/mês
M30 / M40 Produção em média escala A partir de ~US$ 300/mês
M80+ Produção em grande escala $2.000+/mês
Atlas Serverless Carga intermitente Pagamento conforme o uso

7. Uma visão geral do ecossistema do MongoDB

(1) Componentes principais

100%
graph TB
    subgraph "MongoDB Ecology"
        A[MongoDB Server<br/>Core Database Engine]
        B[mongosh<br/>Command-Line Client]
        C[MongoDB Compass<br/>GUI Visualization Tools]
        D[MongoDB Atlas<br/>Cloud Hosting Services]
        E[BI Connector<br/>Tableau / Power BI Integration]
        F[Kafka Connector<br/>Real-Time Data Pipeline]
        G[mongodump / mongorestore<br/>Backup and Recovery Tool]
    end

    A --> B
    A --> C
    A --> D
    A --> E
    A --> F
    A --> G

    style A fill:#cce5ff
    style D fill:#d4edda

(2) Orientado por linguagem de programação

Idioma Drivers oficiais ODMs/ORMs populares
JavaScript / Node.js mongodb mongoose (27 mil⭐)
Python pymongo MongoEngine, Flask-MongoEngine
Java mongodb-driver-sync Spring Data MongoDB
Ir mongo-go-driver mgo, Qor
PHP mongodb Doctrine MongoDB
C# MongoDB.Driver MongoDB.Entities
Ruby mongo Mongoid

(3) Padrão de fato no ecossistema do Node.js: Mongoose

Visão geral do conceito: O Mongoose é o ODM (Modelagem de Objetos e Documentos) do MongoDB mais popular no ecossistema Node.js, com mais de 27 mil estrelas no GitHub. Baseado no driver nativo mongodb, o Mongoose oferece recursos avançados, como definição de esquema, validação de dados, middleware e consultas de junção populate, tornando as operações do MongoDB mais seguras e fáceis de usar. A desvantagem é uma ligeira perda de desempenho (que pode ser desativada por meio de lean()).

Dimensão Driver nativo do MongoDB Mongoose ODM
Definição do esquema ❌ Nenhuma ✅ Tipo + Validação
Validação de dados Manual Automática
Middleware ❌ Nenhum ✅ Hooks pré e pós
Consulta combinada $lookup manual ✅ populate()
Desempenho Ideal Ligeiramente inferior (pode ser compensado usando lean())
Curva de aprendizado Baixa Média
JAVASCRIPT
// mongoose 7.x — Node.js Eco-Friendly Is All the Rage ODM(27k⭐)
const mongoose = require('mongoose');

// 1. Connect to the Database
mongoose.connect('mongodb://localhost:27017/shophub');

// 2. Definition Schema(Data Model)
const productSchema = new mongoose.Schema({
  sku: { type: String, required: true, unique: true },
  title: { type: String, required: true },
  price: { type: Number, required: true, min: 0 },
  category: { type: String, enum: ['Electronics', 'Clothing', 'Books'] },
  attributes: { type: Object, default: {} },
  tags: [String],
  stock: { type: Number, default: 0 }
}, { timestamps: true });

// 3. Create Model
const Product = mongoose.model('Product', productSchema);

// 4. CRUD Operation
const phone = await Product.create({
  sku: 'PHONE-X-256-BLK',
  title: 'Smartphone X 256GB Black',
  price: 599.99,
  category: 'Electronics',
  attributes: { color: 'Black', storage: '256GB' },
  tags: ['5g', 'amoled'],
  stock: 80
});

▶ Exemplo 2: Instalação do conjunto completo de ferramentas do MongoDB

BASH
# 1. Installation mongosh(Command-Line Client)
brew install mongosh        # macOS
sudo apt install mongosh    # Ubuntu

# 2. Installation MongoDB Compass(GUI Tools)
# Download from https://www.mongodb.com/try/download/compass

# 3. Installation Node.js Driver
npm install mongodb --save

# 4. Installation mongoose(Recommendations)
npm install mongoose --save

# 5. Verify the Installation
mongosh --version
node -e "console.log(require('mongoose').version)"

8. O MongoDB e seus três principais mercados-alvo

(1) Mercado do Oriente Médio (árabe)

Casos de uso:

Vantagens do MongoDB:

(2) Mercado brasileiro (português)

Casos de uso:

Vantagens do MongoDB:

(3) Mercado japonês (japonês)

Casos de uso:

Vantagens do MongoDB:


9. Percursos de aprendizagem sugeridos

(1) Roteiro deste tutorial

100%
graph LR
    A[Phase 1<br/>MongoDB Getting Started<br/>6 Lessons] --> B[Phase 2<br/>CRUD + mongoose<br/>7 Lessons]
    B --> C[Phase 3<br/>Aggregation + Index<br/>7 Lessons]
    C --> D[Phase 4<br/>Transactions + Replica Sets + Sharding<br/>5 Lessons]
    D --> E[Phase 5<br/>Node.js Practical Application + Comprehensive Projects<br/>5 Lessons]

    style A fill:#d4edda
    style E fill:#cce5ff

(2) Conhecimentos prévios

Imprescindível Recomendado
✅ Noções básicas de JavaScript (ES6+) TypeScript
✅ Noções básicas do Node.js Framework Express
✅ Operações na linha de comando Docker
✅ API HTTP / REST Formato de dados JSON

(3) Tempo estimado de estudo


❓ Perguntas Frequentes

P: O MongoDB é gratuito? R: A MongoDB Community Edition (instalada localmente) é totalmente gratuita e de código aberto (sob a licença SSPL). O MongoDB Atlas oferece um cluster de 512 MB que é gratuito para sempre. A versão comercial (Enterprise Advanced) é cobrada com base no tamanho do cluster.

P: O que devo escolher, MongoDB ou MySQL? R: Depende do cenário de negócios. Esquema fixo + transações robustas (por exemplo, pedidos, ERP) → MySQL; alterações frequentes no esquema + altos volumes de gravação (por exemplo, CMS, catálogos de produtos, logs) → MongoDB. Você também pode usar uma abordagem híbrida (MySQL para dados essenciais do negócio + MongoDB para logs de comportamento do usuário).

P: Preciso saber SQL para aprender MongoDB? R: Não. Este tutorial aborda os conceitos de bancos de dados de documentos desde o início. No entanto, se você tiver um conhecimento básico de SQL, conseguirá compreender mais rapidamente conceitos do MongoDB, como o $lookup (semelhante ao JOIN) e o $group (semelhante ao GROUP BY) no pipeline de agregação.

P: Qual é a relação entre um “documento” do MongoDB e o JSON? R: Os documentos do MongoDB são armazenados no formato BSON (Binary JSON), que suporta mais tipos de dados do que o JSON (como Date, ObjectId e Decimal128). No entanto, a sintaxe é quase idêntica à do JSON, portanto não há dificuldade de adaptação para desenvolvedores front-end.

P: Qual é o tamanho máximo de um conjunto de dados que o MongoDB pode armazenar? R: O tamanho máximo de um único documento no MongoDB é de 16 MB (filosofia de projeto: evitar o armazenamento de documentos muito grandes). Uma única coleção pode armazenar petabytes de dados (por meio do particionamento). No Atlas, o maior cluster suporta 4.096 fragmentos, sendo que cada um deles é capaz de armazenar 32 TB.

P: O que é o Mongoose? Por que usá-lo? R: O Mongoose é o ODM do MongoDB mais popular no ecossistema Node.js (27 mil ⭐). Ele oferece recursos avançados, como definição de esquema, validação de dados, middleware e consultas de junção populate. É mais fácil de usar do que o driver nativo mongodb, mas apresenta uma ligeira perda de desempenho (que pode ser desativada em produção).


📖 Resumo


📝 Exercícios

  1. Exercício básico (⭐): Acesse mongodb.com/cloud/atlas para criar uma conta, crie um cluster M0 gratuito e conecte-se com sucesso usando mongosh.

  2. Exercício básico (⭐): Execute o comando db.runCommand({ ping: 1 }) no cluster Atlas, faça uma captura de tela da saída e revise os conceitos básicos da validação de conexão do MongoDB.

  3. Exercício avançado (⭐⭐): Use o mongosh para executar os seguintes comandos: use shopdb, db.products.insertOne({ sku: "TEST-001", title: "Test Product", price: 9.99 }) e db.products.find().pretty() para entender a criação implícita de bancos de dados e coleções no MongoDB.

  4. Pergunta avançada (⭐⭐): Leia a seção “O que é NoSQL?” da documentação oficial do MongoDB (pesquise a palavra-chave) e cite um caso de uso real para cada uma das quatro principais famílias de NoSQL (chave-valor, documento, orientada a colunas e grafo).

  5. Desafio (⭐⭐⭐): Compare os dois ORMs do Node.js — MongoDB (Mongoose) e MySQL (Sequelize) — e implemente um código para “criar uma tabela/coleção de usuários (com 5 campos)” para cada um, observando as diferenças no estilo da API entre os dois ORMs.

Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%