Observe a consulta SQL a seguir. ALTER TABLE Processos ADD data_criacao DATETIME; A consulta apresentada que corresponde à consulta MongoDB:
- A)db.Processos.updateMany({ }, {$set:{data_criacao:new Date()}})
Certa: updateMany com $set adiciona o campo data_criacao em todos os documentos, equivalente prático ao ADD de uma coluna.
- B)db.Processos.add({all()}, {$set:{data_criacao:new Date()}})
Errada: add não é um comando válido para essa operação no MongoDB e a sintaxe proposta não corresponde ao padrão.
- C)db.Processos.insertOne({find()}, {$set:{data_criacao:new Date()}})
Errada: insertOne insere um novo documento, não acrescenta campo em documentos já existentes.
- D)db.Processos.createField({ }, {$set:{data_criacao:new Date()}})
Errada: createField não é um comando do MongoDB para alterar documentos ou coleção.
- E)db.Processos.addField({find()}, {$unset:{data_criacao:new Date()}})
Errada: addField não é um comando válido e $unset removeria um campo, não o adicionaria.
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.