← Questões de Banco de Dados

Banco de Dados · FGV · 2025

Questão comentada de Banco de Dados

Observe a consulta SQL a seguir. ALTER TABLE Processos ADD data_criacao DATETIME; A consulta apresentada que corresponde à consulta MongoDB:

Gabarito: A

Em SQL, o comando ALTER TABLE ... ADD serve para acrescentar uma coluna nova na tabela. No MongoDB, como os documentos são flexíveis e não precisam ter a mesma estrutura, o equivalente prático é atualizar os documentos e inserir um novo campo com $set. Por isso, a ideia correta é fazer um update em massa na coleção Processos, adicionando o campo data_criacao. O ponto central é este: banco relacional pensa em tabela e coluna; MongoDB pensa em coleção e documento. Então, em vez de "alterar a estrutura" da tabela, você modifica os documentos existentes. O operador $set cria ou atualiza um campo sem mexer nos demais dados. Na alternativa A, db.Processos.updateMany({ }, {$set:{data_criacao:new Date()}}) faz exatamente isso: aplica a atualização a todos os documentos da coleção e grava no novo campo uma data do tipo Date, que corresponde bem ao DATETIME do SQL. Em termos conceituais, é a equivalência mais próxima entre os dois mundos. As demais opções usam comandos que não fazem sentido na sintaxe do MongoDB ou trocam a operação de atualização por inserção, criação de campo ou remoção. Em prova, quando aparecer "adicionar coluna" no SQL e "adicionar campo" no MongoDB, pense logo em update com $set.

Continue treinando

Questões relacionadas