Pular para o conteúdo
Cursos

DevClub

LógicaFront-endBack-endMobile

IA Club

IA na prática
Estudar programaçãoEstudar IA

Aula 1 de 6

MongoDB: documentos, coleções e BSON na prática

Entenda como MongoDB organiza bancos, coleções e documentos BSON e faça seu primeiro filtro sem confundir o simulador com um servidor real.

42 minutos · leitura + prática · nível iniciante

Ao terminar esta aula, você vai conseguir

  • Diferenciar banco, coleção, documento e campo
  • Relacionar JSON didático ao formato BSON usado pelo MongoDB
  • Executar um filtro por igualdade e conferir o resultado
Três documentos independentes guardam nome e estado ativo.

MongoDB é um sistema de gerenciamento de banco de dados orientado a documentos. Nesta aula, você vai reconhecer como ele organiza os dados e executar um filtro por igualdade. O resultado esperado é localizar somente os cursos da área escolhida e explicar onde esse dado estaria num servidor real.

Um documento é um conjunto de campos e valores. Pense numa ficha de cadastro: ela pode guardar nome, área e carga horária na mesma unidade. Uma coleção é como o arquivo que reúne fichas com a mesma finalidade, e o banco de dados agrupa coleções de uma aplicação. A analogia termina aqui: documentos não são folhas de papel, podem conter objetos e arrays aninhados e são armazenados em BSON, um formato binário com tipos próprios.

Leia um documento pelos nomes corretos

Em uma representação parecida com JSON, um curso pode aparecer assim:

json
{
  "_id": "curso-101",
  "titulo": "HTML do zero",
  "area": "front-end",
  "cargaHoras": 4,
  "ativo": true
}

titulo é um campo e "HTML do zero" é seu valor. _id identifica o documento dentro da coleção. Num MongoDB real, se a aplicação não fornecer _id ao inserir, o driver normalmente cria um ObjectId. Não use o título como identificador só porque parece único; títulos mudam e podem se repetir.

BSON aceita tipos que JSON puro não representa diretamente, como ObjectId, data e Decimal128. Por isso, o bloco acima é uma visualização didática, não uma descrição de todos os bytes armazenados. O tipo correto importa nas consultas: o texto "4" e o número 4 são valores diferentes.

Coleções flexíveis ainda precisam de regras

Documentos da mesma coleção não precisam ter todas as chaves idênticas. Essa flexibilidade ajuda uma aplicação a evoluir, mas não significa “guardar qualquer coisa”. Compare estes dois documentos:

javascript
db.cursos.insertMany([
  { titulo: 'HTML do zero', cargaHoras: 4, ativo: true },
  { titulo: 'CSS responsivo', cargaHoras: 'seis', ativo: true }
])

O segundo valor usa texto onde o sistema espera número. O comando pode ser aceito sem validação de schema, mas uma comparação numérica ou soma passará a produzir resultados incoerentes. Esse é o erro reproduzível desta aula: mude cargaHoras de um item do laboratório para "6" e filtre com $gte. O item deixa de representar o mesmo tipo de dado, ainda que pareça semelhante na tela.

Em uma aplicação real, defina regras na entrada e considere a validação de schema da coleção. Flexibilidade é poder modelar documentos adequados, não abrir mão de consistência.

Faça a primeira consulta

No mongosh, um filtro por igualdade seria escrito assim:

javascript
db.cursos.find({ area: 'front-end' })

O método find recebe um documento de filtro. O MongoDB compara o campo area e devolve os documentos correspondentes. O laboratório desta página imita uma parte pequena desse comportamento usando um array JSON no navegador. Ele não abre conexão, não persiste alterações, não entende BSON completo e não substitui um servidor MongoDB. Os operadores disponíveis nele são igualdade, $gte, $gt, $lte, $lt, $ne e $in.

Execute o filtro inicial e confirme dois resultados. Depois troque o valor por "dados" e espere um. Por fim, use um valor inexistente e espere uma lista vazia. Sua missão é acrescentar documentos, prever a contagem e só então rodar. Essa previsão transforma a consulta em uma hipótese verificável.

Na próxima aula, você vai decidir o formato dos documentos a partir das perguntas da aplicação, em vez de apenas copiar a ficha do mundo real.

Laboratório ao vivo

Encontre cursos em uma coleção

Execute o filtro inicial, troque a área e tente um valor inexistente. Este é um simulador didático de filtros, não uma conexão com MongoDB.

Pronto para testar

Resultado

Pare e pense

Qual afirmação descreve corretamente uma coleção no MongoDB?

Escolha uma resposta
Missão da aula

Faça sem copiar

Acrescente dois cursos aos dados, filtre uma área que tenha exatamente dois resultados e anote quais campos você manteria obrigatórios no sistema real.

Fontes para consultar

Terminou a missão?

Marque apenas quando você conseguir explicar o conceito e concluir o desafio. O progresso fica salvo somente neste navegador.

Próxima: Modele documentos MongoDB por acesso aos dados →