Pular para o conteúdo principal

Questão de Banco de Dados — Geral — FGV 2026

Banco de DadosGeral
Código
fg157195
Banca
FGV
Órgão
TJ RJ
Ano
2026
Cargo
AJ ( )
O TJRJ precisa executar uma atualização em lote na coleção processos armazenada no MongoDB. Todos os processos que atualmente possuem o status de “Em Diligência” e pertencem à Comarca de “Niterói” devem ser alterados para a nova Comarca do “Rio de Janeiro”, e seu status deve ser modificado para “Em Remessa ao TJRJ”.   No mongosh, para executar a atualização, deve-se utilizar o comando:
  1. Adb.processos.updateMany( { comarca: "Niterói" }, { $push: { status: "Em Remessa ao TJRJ" } } );
  2. Bdb.processos.findOne( { status: "Em Diligência", comarca: "Niterói" }); db.processos.updateOne( { $set: { status: "Em Remessa ao TJRJ", comarca: "Rio de Janeiro" } } );
  3. Cdb.processos.updateMany( { $and: [{ status: "Em Diligência" }, { comarca: "Niterói" }] }, { $update: { status: "Em Remessa ao TJRJ", comarca: "Rio de Janeiro" } } );
  4. Ddb.processos.replaceMany( { status: "Em Diligência", comarca: "Niterói" }, { status: "Em Remessa ao TJRJ", comarca: "Rio de Janeiro" } );
  5. Edb.processos.updateMany( { status: "Em Diligência", comarca: "Niterói" }, { $set: { status: "Em Remessa ao TJRJ", comarca: "Rio de Janeiro" } } );
Revelar gabarito e comentário

GabaritoE — db.processos.updateMany( { status: "Em Diligência", comarca: "Niterói" }, { $set: { status: "Em Remessa ao TJRJ", comarca: "Rio de Janeiro" } } );

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: updateMany e o operador $set

Gabarito: letra E. O comando correto é db.processos.updateMany({ status: "Em Diligência", comarca: "Niterói" }, { $set: { status: "Em Remessa ao TJRJ", comarca: "Rio de Janeiro" } }), pois updateMany atualiza todos os documentos que atendem ao filtro e $set modifica os campos especificados. As demais alternativas erram ao usar operadores inexistentes ($push, $update, replaceMany) ou ao não aplicar o filtro corretamente.

O MongoDB é um banco de dados NoSQL orientado a documentos, onde cada registro é um documento JSON. Para atualizar documentos, o MongoDB oferece os métodos updateOne (atualiza apenas o primeiro documento que corresponde ao filtro) e updateMany (atualiza todos os documentos que correspondem ao filtro). O operador $set é usado para definir o valor de um campo, substituindo o valor antigo. O operador $push é usado para adicionar um elemento a um array, não para substituir valores de campos escalares. O operador $update não existe no MongoDB — o correto é usar $set, $unset, $inc, entre outros. O método replaceMany também não existe; para substituir um documento inteiro, usa-se replaceOne.

No cenário da questão, precisamos atualizar todos os processos que estão com status "Em Diligência" e comarca "Niterói" para os novos valores. O filtro deve conter ambas as condições, e o operador de atualização deve ser $set para modificar os campos status e comarca. A alternativa E é a única que combina corretamente o método updateMany, o filtro com as duas condições e o operador $set.

A pegadinha da banca está em confundir o operador $push (que adiciona a um array) com $set (que substitui o valor), e em usar métodos inexistentes como replaceMany e $update. Além disso, a alternativa B usa updateOne sem filtro, o que atualizaria apenas um documento arbitrário, e a alternativa A não filtra pelo status "Em Diligência".

NÃO CAIA NESSA!

A banca troca o operador $set por $push (alternativa A) e $update (alternativa C), e inventa o método replaceMany (alternativa D). O $push adiciona um elemento a um array, não substitui um valor escalar; $update não existe no MongoDB; e o método correto para atualizar múltiplos documentos é updateMany, não replaceMany. Fique atento: updateMany + $set é a combinação clássica para atualizações em lote.

  1. 1updateMany (filtro)
  2. 2Filtro: status + comarca
  3. 3$set: novos valores
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O filtro está incompleto (não inclui status: "Em Diligência") e usa $push, que adiciona um elemento a um array, não substitui o valor de um campo. O correto seria $set para modificar os campos status e comarca.

Alternativa B — ❌ Incorreta

Usa findOne para buscar um documento e depois updateOne sem filtro, o que atualizaria apenas um documento arbitrário (o primeiro da coleção), não todos os que atendem às condições. Além disso, o updateOne sem filtro é uma operação perigosa e não atende ao requisito de atualizar todos os processos.

Alternativa C — ❌ Incorreta

Usa o operador $update, que não existe no MongoDB. O operador correto para modificar campos é $set. O filtro com $and é válido, mas o operador de atualização inválido torna a alternativa errada.

Alternativa D — ❌ Incorreta

Usa o método replaceMany, que não existe no MongoDB. O método para substituir um documento inteiro é replaceOne, e para atualizar múltiplos documentos é updateMany. Além disso, a sintaxe apresentada não é válida.

Alternativa E — ✅ Correta ⟵ GABARITO

Usa updateMany com o filtro correto (status: "Em Diligência" e comarca: "Niterói") e o operador $set para modificar os campos status e comarca para os novos valores. Esta é a sintaxe correta para atualizar todos os documentos que atendem às condições.

Gabarito: letra E

Link permanente: /questoes/fg157195