Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados — FGV 2025

Banco de DadosBanco de Dados
Código
fg116232
Banca
FGV
Órgão
MPU
Ano
2025
Nível
Superior
Cargo
Analista do - Suporte e Infraestrutura
Observe os conjuntos de dados do MongoDB a seguir.Coleções:Autor: { "_id": 1, "nome": "João", "email": "joao@www.mpu.mp.br" }Endereco: { "_id": 101, "usuario_id": 1, "quadra": "202","cidade": "Brasília", "cep": "70000-000" }Resultado da junção:{ "_id": 1, "nome": "João", "email": " joao@www.mpu.mp.br ", "detalhes_endereco": [ { "_id": 101,"usuario_id": 1, "quadra": "202", "cidade": " Brasília","cep": "70000-000" } ] }No MongoDB, para realizar operações de junção entre as coleções combinando os dados de Autor e seu respectivo Endereco, deve-se utilizar a operação:
  1. A$skip
  2. B$sort
  3. C$match
  4. D$group
  5. E$lookup
Revelar gabarito e comentário

GabaritoE — $lookup

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

MongoDB: operador de junção entre coleções

Gabarito: letra E. O operador $lookup é o estágio do pipeline de agregação do MongoDB utilizado para realizar uma left outer join entre duas coleções, combinando documentos com base em uma condição de igualdade entre campos. É exatamente o que o exemplo da questão demonstra: a coleção "Autor" é unida à coleção "Endereco" pelo campo usuario_id, gerando o campo detalhes_endereco com os endereços correspondentes.

A questão testa o conhecimento sobre os operadores do pipeline de agregação do MongoDB. Vamos analisar cada alternativa:

Alternativa A — ❌ Incorreta

$skip é usado para pular um número específico de documentos no início do pipeline. Não realiza junção.

Alternativa B — ❌ Incorreta

$sort ordena os documentos por um ou mais campos. Não realiza junção.

Alternativa C — ❌ Incorreta

$match filtra os documentos com base em uma condição, similar ao WHERE do SQL. Não realiza junção entre coleções.

Alternativa D — ❌ Incorreta

$group agrupa documentos por um campo e permite calcular agregações sobre os grupos. Não realiza junção.

Alternativa E — ✅ Correta ⟵ GABARITO

$lookup é o operador específico para realizar junções entre coleções no MongoDB. Ele é utilizado dentro do pipeline de agregação com a seguinte sintaxe básica:

{
   $lookup:
   {
     from: <coleção a unir>,
     localField: <campo da coleção atual>,
     foreignField: <campo da outra coleção>,
     as: <nome do novo campo de array>
   }
}

No exemplo, localField: "usuario_id" em Autor corresponde a foreignField: "_id" em Endereco (ou o campo referente) e o resultado é inserido em detalhes_endereco.

Portanto, a alternativa correta é a letra E ($lookup).

Link permanente: /questoes/fg116232