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:
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.
1updateMany (filtro)
2Filtro: status + comarca
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.