Atualizar documentos no MongoDB é uma tarefa crucial para manter seus dados atualizados e relevantes. No MongoDB, você pode atualizar documentos usando o comando update() ou o comando findAndModify(). Ambos os comandos permitem que você atualize um ou mais documentos de uma coleção.
O comando update() é o método mais comum para atualizar documentos no MongoDB. Ele tem a seguinte sintaxe: db.collection.update(query, update, options). Aqui, 'query' é a condição que determina quais documentos atualizar. 'Update' é a modificação a ser feita e 'options' são várias opções que você pode usar para personalizar o comportamento do comando.
Por exemplo, se você tem uma coleção chamada 'users' e deseja atualizar o campo 'email' de um usuário específico, você pode fazer o seguinte:
db.users.update( { "name": "John Doe" }, { $set: { "email": "john.doe@example.com" } } )
Neste exemplo, a 'query' é { "name": "John Doe" }, o que significa que estamos procurando um documento onde o campo 'name' é igual a 'John Doe'. A 'update' é { $set: { "email": "john.doe@example.com" } }, o que significa que estamos atualizando o campo 'email' para 'john.doe@example.com'.
O comando findAndModify() é outro método para atualizar documentos no MongoDB. Ele tem a seguinte sintaxe: db.collection.findAndModify(query, sort, update, options). Aqui, 'query' é a condição que determina quais documentos atualizar, 'sort' determina a ordem dos documentos, 'update' é a modificação a ser feita e 'options' são várias opções que você pode usar para personalizar o comportamento do comando.
Por exemplo, se você tem uma coleção chamada 'orders' e deseja atualizar o campo 'status' do pedido mais antigo, você pode fazer o seguinte:
db.orders.findAndModify( { query: { "status": "pending" }, sort: { "date": 1 } }, { $set: { "status": "processed" } } )
Neste exemplo, a 'query' é { "status": "pending" }, o que significa que estamos procurando um documento onde o campo 'status' é igual a 'pending'. O 'sort' é { "date": 1 }, o que significa que estamos ordenando os documentos pela data em ordem crescente. A 'update' é { $set: { "status": "processed" } }, o que significa que estamos atualizando o campo 'status' para 'processed'.
No MongoDB, você também pode atualizar vários documentos de uma vez. Para fazer isso, você pode usar a opção 'multi' com o comando update(). Por exemplo, se você deseja atualizar o campo 'status' de todos os pedidos pendentes, você pode fazer o seguinte:
db.orders.update( { "status": "pending" }, { $set: { "status": "processed" } }, { multi: true } )
Neste exemplo, a 'query' é { "status": "pending" }, o que significa que estamos procurando documentos onde o campo 'status' é igual a 'pending'. A 'update' é { $set: { "status": "processed" } }, o que significa que estamos atualizando o campo 'status' para 'processed'. A opção 'multi' é definida como verdadeira, o que significa que estamos atualizando todos os documentos que correspondem à consulta.
Em resumo, a atualização de documentos no MongoDB é uma tarefa essencial que permite manter seus dados atualizados e relevantes. O MongoDB oferece comandos poderosos, como update() e findAndModify(), que permitem que você atualize um ou mais documentos de uma coleção de maneira eficiente e flexível.