Atualizando um Documento Único com updateOne
Nesta etapa, você aprenderá como modificar um único documento em uma coleção MongoDB. Usaremos o método updateOne() juntamente com o operador $set para alterar o valor de um campo em um documento específico.
Primeiro, abra o MongoDB Shell para interagir com seu banco de dados.
mongosh
Uma vez dentro do shell, mude para o mylab_database que foi preparado para você.
use mylab_database
Vamos visualizar os documentos atuais na coleção books. O método .pretty() formata a saída para torná-la mais legível.
db.books.find().pretty();
Você deverá ver os três documentos de livros iniciais. Os valores de _id serão únicos em seu ambiente.
[
{
_id: ObjectId("..."),
title: 'JavaScript Fundamentals',
author: 'Mike Johnson',
year: 2022,
pages: 350
},
{
_id: ObjectId("..."),
title: 'Python Deep Dive',
author: 'Sarah Williams',
year: 2021,
pages: 450
},
{
_id: ObjectId("..."),
title: 'Machine Learning Basics',
author: 'John Doe',
year: 2020,
price: 39.99
}
]
Agora, vamos atualizar o ano de publicação do livro "JavaScript Fundamentals" para 2023.
db.books.updateOne(
{ title: "JavaScript Fundamentals" },
{ $set: { year: 2023 } }
);
Vamos detalhar este comando:
updateOne(): Este método encontra o primeiro documento que corresponde ao filtro e o atualiza.
{ title: "JavaScript Fundamentals" }: Este é o documento de filtro. Ele diz ao MongoDB para encontrar um documento onde o campo title seja "JavaScript Fundamentals".
{ $set: { year: 2023 } }: Este é o documento de atualização. O operador $set substitui o valor do campo year por 2023.
O comando retorna um objeto de resultado que confirma a operação.
{
"acknowledged": true,
"insertedId": null,
"matchedCount": 1,
"modifiedCount": 1,
"upsertedCount": 0
}
O matchedCount: 1 indica que um documento correspondeu ao nosso filtro, e modifiedCount: 1 indica que um documento foi atualizado com sucesso.
Para verificar a alteração, encontre o documento novamente.
db.books.findOne({ title: "JavaScript Fundamentals" });
A saída mostrará o documento atualizado com o novo ano.
{
_id: ObjectId("..."),
title: 'JavaScript Fundamentals',
author: 'Mike Johnson',
year: 2023,
pages: 350
}