Update

Em MongoDB, você pode usar o método update() para modificar documentos em uma coleção. O método update() permite que você atualize um ou vários documentos que atendam a um critério de consulta específico. A sintaxe básica para o método update() é a seguinte:

db.collection.update(
   <critério de consulta>,
   <documento de atualização>,
   {
     <opções>
   }
)
  • <critério de consulta>: Especifica os documentos que serão atualizados com base em determinados critérios. Por exemplo, { name: "Alice" } seleciona documentos onde o campo name é igual a “Alice”.
  • <documento de atualização>: Especifica as alterações que você deseja fazer no(s) documento(s) correspondente(s) ao critério de consulta. Você pode usar operadores de atualização para modificar campos específicos do documento.
  • <opções>: Parâmetros opcionais que controlam o comportamento da operação de atualização, como multi para atualizar múltiplos documentos que atendem ao critério (o padrão é false) e upsert para inserir um novo documento se nenhum documento for encontrado pelo critério de consulta (o padrão é false).

Aqui estão alguns exemplos de como usar o método update():

Atualizar um Documento:

// Atualiza o campo 'age' para 35 no documento onde 'name' é igual a 'Alice'
db.users.update({ name: "Alice" }, { $set: { age: 35 } })

Neste exemplo, $set é um operador de atualização que define o valor do campo age como 35 no documento que corresponde ao critério de consulta { name: "Alice" }.

Atualizar Múltiplos Documentos:

// Atualiza o campo 'status' para 'ativo' em todos os documentos onde 'age' é maior que 25
db.users.update({ age: { $gt: 25 } }, { $set: { status: "ativo" } }, { multi: true })

Neste exemplo, { multi: true } é passado como uma opção para garantir que todos os documentos que atendem ao critério de consulta { age: { $gt: 25 } } sejam atualizados.

Atualizar com Operadores de Incremento:

// Incrementa o campo 'score' em 10 para o documento onde 'name' é igual a 'Bob'
db.users.update({ name: "Bob" }, { $inc: { score: 10 } })

Neste exemplo, $inc é um operador de atualização que incrementa o valor do campo score em 10.

Atualizar com Upsert:

// Atualiza o campo 'count' para 1 onde 'name' é igual a 'Eva'; se não houver correspondência, insere um novo documento com 'name' igual a 'Eva' e 'count' igual a 1
db.users.update({ name: "Eva" }, { $set: { count: 1 } }, { upsert: true })

Neste exemplo, { upsert: true } é passado como uma opção para indicar que um novo documento deve ser inserido se nenhum documento corresponder ao critério de consulta.

Lembre-se de que o método update() foi substituído pelo método updateOne() para atualizar um único documento e updateMany() para atualizar vários documentos. O uso dos métodos updateOne() e updateMany() é recomendado para melhor clareza e para evitar confusões na lógica de atualização.