← Questões de Banco de Dados

Banco de Dados · FGV · 2025

Questão comentada de Banco de Dados

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:

Gabarito: E

No MongoDB, quando voce quer juntar dados que estao em colecoes diferentes, a operacao clássica do Aggregation Framework e o $lookup. Ele funciona como uma especie de “join” do mundo relacional, trazendo documentos relacionados de outra colecao com base em campos correspondentes. No exemplo, o documento de Autor tem um usuario com _id 1, e a colecao Endereco guarda usuario_id 1, entao o MongoDB consegue combinar os registros e montar o resultado com os dados do endereco dentro de um array, como mostrado no enunciado. Isso cai muito em prova porque a banca gosta de testar a diferenca entre operadores do pipeline. $match filtra documentos, $sort ordena, $group agrega, mas nenhum deles faz junção entre colecoes. Quem faz essa ponte entre colecoes e o $lookup, inclusive sendo o operador tipico para esse tipo de relacionamento no MongoDB. Na pratica, o raciocinio e simples: se voce precisa “buscar a ficha completa” de um documento em outra colecao, pense em $lookup. E se a questao mostrar algo com campos como localField e foreignField, pode apostar que esta falando desse mecanismo de junção. Aqui, portanto, o gabarito E esta correto porque a operacao pedida e justamente a de combinar Autor com seu respectivo Endereco.

Continue treinando

Questões relacionadas