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 camponame
é 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, comomulti
para atualizar múltiplos documentos que atendem ao critério (o padrão éfalse
) eupsert
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.