Mise à jour d'un document unique avec updateOne
Dans cette étape, vous apprendrez à modifier un seul document dans une collection MongoDB. Nous utiliserons la méthode updateOne() avec l'opérateur $set pour modifier la valeur d'un champ dans un document spécifique.
Tout d'abord, ouvrez le Shell MongoDB pour interagir avec votre base de données.
mongosh
Une fois dans le shell, basculez vers la base de données mylab_database qui a été préparée pour vous.
use mylab_database
Visualisons les documents actuels dans la collection books. La méthode .pretty() formate la sortie pour la rendre plus lisible.
db.books.find().pretty();
Vous devriez voir les trois documents de livres initiaux. Les valeurs _id seront uniques dans votre environnement.
[
{
_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
}
]
Maintenant, mettons à jour l'année de publication du livre "JavaScript Fundamentals" à 2023.
db.books.updateOne(
{ title: "JavaScript Fundamentals" },
{ $set: { year: 2023 } }
);
Décomposons cette commande :
updateOne() : Cette méthode trouve le premier document qui correspond au filtre et le met à jour.
{ title: "JavaScript Fundamentals" } : C'est le document de filtre. Il indique à MongoDB de trouver un document où le champ title est "JavaScript Fundamentals".
{ $set: { year: 2023 } } : C'est le document de mise à jour. L'opérateur $set remplace la valeur du champ year par 2023.
La commande renvoie un objet de résultat qui confirme l'opération.
{
"acknowledged": true,
"insertedId": null,
"matchedCount": 1,
"modifiedCount": 1,
"upsertedCount": 0
}
matchedCount: 1 indique qu'un document correspondait à notre filtre, et modifiedCount: 1 indique qu'un document a été mis à jour avec succès.
Pour vérifier la modification, recherchez à nouveau le document.
db.books.findOne({ title: "JavaScript Fundamentals" });
La sortie affichera le document mis à jour avec la nouvelle année.
{
_id: ObjectId("..."),
title: 'JavaScript Fundamentals',
author: 'Mike Johnson',
year: 2023,
pages: 350
}