Questão de Banco de Dados — Banco de Dados — FGV 2025
- Código
- fg116232
- Banca
- FGV
- Órgão
- MPU
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista do - Suporte e Infraestrutura
- A$skip
- B$sort
- C$match
- D$group
- E$lookup
GabaritoE — $lookup
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:
$skip é usado para pular um número específico de documentos no início do pipeline. Não realiza junção.
$sort ordena os documentos por um ou mais campos. Não realiza junção.
$match filtra os documentos com base em uma condição, similar ao WHERE do SQL. Não realiza junção entre coleções.
$group agrupa documentos por um campo e permite calcular agregações sobre os grupos. Não realiza junção.
$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