Les fonctions ,update,updateOne , UpdateMany
syntaxe
updateOne()
modifier ou ajouter un attribut dans le premier document trouvé selon la condition données exemple:db.updateOne({"marque":"marque1"},....})
$set et $unset,$inc avec updateOne
$set:permet de modifier la valuer d'un attibut s'il exites ,s'il n'existes pas il sera créer avec la valeur donnéeExemples
Modifier la marque du produit _id=1 à marqueX Ajouter le champs color=green au document _id=1 supprimer le champs color=green au document _id=1 incrémenter la quantite du document _id=1 avec 5update()
fait la meme chose que updateOne Mais avec une liste d'options (multi,...)Exemple:
modifier la marque à marqueA pour tous les produits du fournisseur nom=fournisseur1 {multi:true} :permet de modifier plusieurs document selon la condition donnée
Remarque
On peut utiliser $set , $unset,$inc avec update de la meme façon que updateOne
Remarque
les fonctions updateOne ,update et updateMany vont créer un attribut s'il n'existe pasPour intedire la création d'un attribut s'il n'existe pas on ajoute l'option:
{upsert:false}
Remarque
la méthode update is deprecated ,donc c'est mieux de travailler avec updateOne ou updateMany
updateMany()
Permet de modifier plusieurs documents qui realise la condition fournie
Exemple:Augmenter le prix par 10$ de tout les produits de la marque 'marque1' et le fournisseur nom=fournisseur3
Remarque
La condition {"marque":"marque1","fournisseur.nom":"fournisseur3"}
peut etre écrite avec l'opérateur $and ::
{$and:[{"marque":"marque1"},{"fournisseur.nom":"fournisseur3"}]
On peut utiliser $set , $unset,$inc avec updateMany de la meme façon que updateOne
Exercices
Modifier le nom du founisseur à founisseur5 pour tous les produits de la marque marqueA
Supprimer le champ color de tous les produits du fournisseur nom=founisseur3
Modifier la marque à marqueC et diminuer le prix par 10 de tous les produits de la marqueB
Exemples
- Q.1puis-je mettre à jour le prix du "produit1" à 50.0 ?
Réponse 1:
Utilisez updateOne() avec l'opérateur $set pour mettre à jour le prix du produit :
- Q.2puis-je ajouter 10 unités à la quantité de "produit1" ?
Réponse 2:
Utilisez updateOne() avec l'opérateur $inc pour ajouter 10 unités à la quantité du produit :
- Q.3puis-je supprimer la catégorie "category2" du produit "produit1" ?
Réponse 3:
Utilisez updateOne() avec l'opérateur $pull pour supprimer la catégorie du produit :
- Q.4puis-je ajouter la catégorie "category3" avec une description à "produit1" ?
Réponse 4:
Utilisez updateOne() avec l'opérateur $push pour ajouter la nouvelle catégorie au produit :
- Q.5puis-je mettre à jour la marque du produit à "marque2" ?
Réponse 5:
Utilisez updateOne() avec l'opérateur $set pour mettre à jour la marque du produit :
- Q.6puis-je ajouter le mois de promotion "avril" à "produit1" ?
Réponse 6:
Utilisez updateOne() avec l'opérateur $push pour ajouter le nouveau mois de promotion au produit :
- Q.7puis-je supprimer le mois de promotion "janvier" de "produit1" ?
Réponse 7:
Utilisez updateOne() avec l'opérateur $pull pour supprimer le mois de promotion du produit :
- Q.8puis-je mettre à jour le nom du fournisseur à "fournisseur2" pour "produit1" ?
Réponse 8:
Utilisez updateOne() avec l'opérateur $set pour mettre à jour le nom du fournisseur du produit :
- Q.9puis-je mettre à jour le numéro de téléphone du fournisseur à "0311234" pour "produit1" ?
Réponse 9:
Utilisez updateOne() avec l'opérateur $set pour mettre à jour le numéro de téléphone du fournisseur du produit :
- Q.10puis-je ajouter le produit "produit2" avec les détails fournis ?
Réponse 10:
Utilisez updateOne() avec l'opérateur upsert pour ajouter le produit s'il n'existe pas ou le mettre à jour s'il existe déjà :
- Q.11puis-je mettre à jour tous les produits dont le prix est inférieur à 40 en augmentant leur prix de 10 ?
Réponse 11:
Utilisez updateMany() avec l'opérateur $lt pour sélectionner les produits et $inc pour augmenter leur prix :
- Q.12puis-je ajouter la catégorie "category4" à tous les produits qui n'ont pas encore cette catégorie ?
Réponse 12:
Utilisez updateMany() avec l'opérateur $push pour ajouter la catégorie aux produits qui ne l'ont pas encore :
- Q.13puis-je supprimer le mois de promotion "octobre" de tous les produits ?
Réponse 13:
Utilisez updateMany() avec l'opérateur $pull pour supprimer le mois de promotion de tous les produits :
- Q.14puis-je supprimer la catégorie "category1" de tous les produits qui ont cette catégorie ?
Réponse 14:
Utilisez updateMany() avec l'opérateur $pull pour supprimer la catégorie de tous les produits qui la possèdent :
- Q.15puis-je supprimer tous les produits ayant une quantité inférieure à 20 ?
Réponse 15:
Utilisez deleteMany() avec l'opérateur $lt pour supprimer tous les produits ayant une quantité inférieure à 20 :
- Q.16puis-je mettre à jour le prix de tous les produits en ajoutant 5 % au prix actuel ?
Réponse 16:
Utilisez updateMany() avec l'opérateur $mul pour multiplier le prix par 1.05 (augmentation de 5 %) pour tous les produits :
- Q.17puis-je supprimer complètement la catégorie "category2" de tous les produits, y compris les produits qui ne l'ont pas ?
Réponse 17:
Utilisez updateMany() avec l'opérateur $pull pour supprimer la catégorie de tous les produits, même s'ils ne la possèdent pas :
- Q.18puis-je mettre à jour la marque de tous les produits à "marque3" ?
Réponse 18:
Utilisez updateMany() avec l'opérateur $set pour mettre à jour la marque de tous les produits :
- Q.19puis-je ajouter le mois de promotion "mai" à tous les produits ?
Réponse 19:
Utilisez updateMany() avec l'opérateur $push pour ajouter le nouveau mois de promotion à tous les produits :
- Q.20puis-je mettre à jour le numéro de téléphone de tous les fournisseurs à "0310000" ?
Réponse 20:
Utilisez updateMany() avec l'opérateur $set pour mettre à jour le numéro de téléphone de tous les fournisseurs :
- Q.21puis-je mettre à jour tous les produits dont le prix est supérieur à 60 en diminuant leur prix de 15 % ?
Réponse 21:
Utilisez updateMany() avec l'opérateur $gt pour sélectionner les produits et $mul pour réduire leur prix de 15 % :
- Q.22puis-je supprimer la catégorie "category1" de tous les produits qui ont à la fois cette catégorie et le mois de promotion "janvier" ?
Réponse 22:
Utilisez updateMany() avec les opérateurs $elemMatch et $pull pour supprimer la catégorie de ces produits :
- Q.23puis-je mettre à jour le prix de tous les produits en fonction de leurs catégories, en ajoutant 5 à tous les produits de la catégorie "category1" et en soustrayant 3 à tous les produits de la catégorie "category2" ?
Réponse 23:
Utilisez updateMany() avec l'opérateur $each et $map pour mettre à jour le prix en fonction de la catégorie :
- Q.24puis-je supprimer complètement la catégorie "category2" de tous les produits, même s'ils ne l'ont pas ?
Réponse 24:
Utilisez updateMany() avec l'opérateur $unset pour supprimer complètement la catégorie de tous les produits, même s'ils ne l'ont pas :
- Q.25puis-je mettre à jour le nom du fournisseur à "fournisseur3" pour tous les produits ?
Réponse 25:
Utilisez updateMany() avec l'opérateur $set pour mettre à jour le nom du fournisseur de tous les produits :
- Q.26puis-je supprimer le mois de promotion "février" de tous les produits ?
Réponse 26:
Utilisez updateMany() avec l'opérateur $pull pour supprimer le mois de promotion de tous les produits :
- Q.27puis-je ajouter le mois de promotion "juin" à tous les produits ?
Réponse 27:
Utilisez updateMany() avec l'opérateur $push pour ajouter le nouveau mois de promotion à tous les produits :
- Q.28puis-je mettre à jour le numéro de téléphone de tous les fournisseurs à "0319999" ?
Réponse 28:
Utilisez updateMany() avec l'opérateur $set pour mettre à jour le numéro de téléphone de tous les fournisseurs :
- Q.29puis-je ajouter un mois de promotion "décembre" à tous les produits ?
Réponse 29:
Utilisez updateMany() avec l'opérateur $push pour ajouter le mois de promotion à tous les produits :
- Q.30puis-je supprimer complètement la catégorie "category1" de tous les produits, même s'ils ne l'ont pas ?
Réponse 30:
Utilisez updateMany() avec l'opérateur $pull pour supprimer complètement la catégorie de tous les produits, même s'ils ne l'ont pas :
- Q.31puis-je mettre à jour le prix de tous les produits de la catégorie "category1" en augmentant leur prix de 10 % ?
Réponse 31:
Utilisez updateMany() avec l'opérateur $set pour mettre à jour le prix des produits de la catégorie "category1" en augmentant de 10 % :
- Q.32puis-je supprimer le mois de promotion "mars" de tous les produits qui ont la catégorie "category1" ?
Réponse 32:
Utilisez updateMany() avec l'opérateur $pull pour supprimer le mois de promotion "mars" des produits ayant la catégorie "category1" :
- Q.33puis-je ajouter la catégorie "category3" avec une description à tous les produits qui ont la catégorie "category1" ?
Réponse 33:
Utilisez updateMany() avec l'opérateur $push pour ajouter la nouvelle catégorie aux produits ayant la catégorie "category1" :
- Q.34puis-je supprimer la catégorie "category1" de tous les produits qui ont la catégorie "category2" ?
Réponse 34:
Utilisez updateMany() avec l'opérateur $pull pour supprimer la catégorie "category1" des produits ayant la catégorie "category2" :
- Q.35puis-je mettre à jour le prix du produit "produit1" en utilisant l'opérateur $inc pour augmenter le prix de 5 ?
Réponse 35:
Utilisez updateOne() avec l'opérateur $inc pour augmenter le prix du produit "produit1" de 5 :
- Q.36puis-je supprimer complètement la catégorie "category1" de tous les produits, même s'ils ne l'ont pas ?
Réponse 36:
Utilisez updateMany() avec l'opérateur $unset pour supprimer complètement la catégorie "category1" de tous les produits, même s'ils ne l'ont pas :
- Q.37puis-je mettre à jour le nom de la catégorie "category1" en "categoryOne" pour tous les produits qui ont cette catégorie ?
Réponse 37:
Utilisez updateMany() avec l'opérateur $set pour mettre à jour le nom de la catégorie "category1" en "categoryOne" pour tous les produits qui ont cette catégorie :
- Q.38puis-je ajouter le mois de promotion "juillet" à tous les produits qui ont la catégorie "category1" ?
Réponse 38:
Utilisez updateMany() avec l'opérateur $push pour ajouter le mois de promotion "juillet" à tous les produits ayant la catégorie "category1" :
- Q.39puis-je mettre à jour la quantité de tous les produits en utilisant l'opérateur $inc pour diminuer la quantité de 5 unités ?
Réponse 39:
Utilisez updateMany() avec l'opérateur $inc pour diminuer la quantité de tous les produits de 5 unités :
- Q.40puis-je ajouter le produit "produit3" avec les détails fournis, en utilisant l'opérateur upsert pour ajouter s'il n'existe pas ou mettre à jour s'il existe déjà ?
Réponse 40:
Utilisez updateOne() avec l'opérateur upsert pour ajouter le produit "produit3" s'il n'existe pas ou le mettre à jour s'il existe déjà :
La condition {"marque":"marque1","fournisseur.nom":"fournisseur3"}
peut etre écrite avec l'opérateur $and ::
{$and:[{"marque":"marque1"},{"fournisseur.nom":"fournisseur3"}]
peut etre écrite avec l'opérateur $and ::
{$and:[{"marque":"marque1"},{"fournisseur.nom":"fournisseur3"}]
On peut utiliser $set , $unset,$inc avec updateMany de la meme façon que updateOne
Exercices
Modifier le nom du founisseur à founisseur5 pour tous les produits de la marque marqueA Supprimer le champ color de tous les produits du fournisseur nom=founisseur3 Modifier la marque à marqueC et diminuer le prix par 10 de tous les produits de la marqueBExemples
- Q.1puis-je mettre à jour le prix du "produit1" à 50.0 ?
Réponse 1: Utilisez updateOne() avec l'opérateur $set pour mettre à jour le prix du produit : - Q.2puis-je ajouter 10 unités à la quantité de "produit1" ?
Réponse 2: Utilisez updateOne() avec l'opérateur $inc pour ajouter 10 unités à la quantité du produit : - Q.3puis-je supprimer la catégorie "category2" du produit "produit1" ?
Réponse 3: Utilisez updateOne() avec l'opérateur $pull pour supprimer la catégorie du produit : - Q.4puis-je ajouter la catégorie "category3" avec une description à "produit1" ?
Réponse 4: Utilisez updateOne() avec l'opérateur $push pour ajouter la nouvelle catégorie au produit : - Q.5puis-je mettre à jour la marque du produit à "marque2" ?
Réponse 5: Utilisez updateOne() avec l'opérateur $set pour mettre à jour la marque du produit : - Q.6puis-je ajouter le mois de promotion "avril" à "produit1" ?
Réponse 6: Utilisez updateOne() avec l'opérateur $push pour ajouter le nouveau mois de promotion au produit : - Q.7puis-je supprimer le mois de promotion "janvier" de "produit1" ?
Réponse 7: Utilisez updateOne() avec l'opérateur $pull pour supprimer le mois de promotion du produit : - Q.8puis-je mettre à jour le nom du fournisseur à "fournisseur2" pour "produit1" ?
Réponse 8: Utilisez updateOne() avec l'opérateur $set pour mettre à jour le nom du fournisseur du produit : - Q.9puis-je mettre à jour le numéro de téléphone du fournisseur à "0311234" pour "produit1" ?
Réponse 9: Utilisez updateOne() avec l'opérateur $set pour mettre à jour le numéro de téléphone du fournisseur du produit : - Q.10puis-je ajouter le produit "produit2" avec les détails fournis ?
Réponse 10: Utilisez updateOne() avec l'opérateur upsert pour ajouter le produit s'il n'existe pas ou le mettre à jour s'il existe déjà : - Q.11puis-je mettre à jour tous les produits dont le prix est inférieur à 40 en augmentant leur prix de 10 ?
Réponse 11: Utilisez updateMany() avec l'opérateur $lt pour sélectionner les produits et $inc pour augmenter leur prix : - Q.12puis-je ajouter la catégorie "category4" à tous les produits qui n'ont pas encore cette catégorie ?
Réponse 12: Utilisez updateMany() avec l'opérateur $push pour ajouter la catégorie aux produits qui ne l'ont pas encore : - Q.13puis-je supprimer le mois de promotion "octobre" de tous les produits ?
Réponse 13: Utilisez updateMany() avec l'opérateur $pull pour supprimer le mois de promotion de tous les produits : - Q.14puis-je supprimer la catégorie "category1" de tous les produits qui ont cette catégorie ?
Réponse 14: Utilisez updateMany() avec l'opérateur $pull pour supprimer la catégorie de tous les produits qui la possèdent : - Q.15puis-je supprimer tous les produits ayant une quantité inférieure à 20 ?
Réponse 15: Utilisez deleteMany() avec l'opérateur $lt pour supprimer tous les produits ayant une quantité inférieure à 20 : - Q.16puis-je mettre à jour le prix de tous les produits en ajoutant 5 % au prix actuel ?
Réponse 16: Utilisez updateMany() avec l'opérateur $mul pour multiplier le prix par 1.05 (augmentation de 5 %) pour tous les produits : - Q.17puis-je supprimer complètement la catégorie "category2" de tous les produits, y compris les produits qui ne l'ont pas ?
Réponse 17: Utilisez updateMany() avec l'opérateur $pull pour supprimer la catégorie de tous les produits, même s'ils ne la possèdent pas : - Q.18puis-je mettre à jour la marque de tous les produits à "marque3" ?
Réponse 18: Utilisez updateMany() avec l'opérateur $set pour mettre à jour la marque de tous les produits : - Q.19puis-je ajouter le mois de promotion "mai" à tous les produits ?
Réponse 19: Utilisez updateMany() avec l'opérateur $push pour ajouter le nouveau mois de promotion à tous les produits : - Q.20puis-je mettre à jour le numéro de téléphone de tous les fournisseurs à "0310000" ?
Réponse 20: Utilisez updateMany() avec l'opérateur $set pour mettre à jour le numéro de téléphone de tous les fournisseurs : - Q.21puis-je mettre à jour tous les produits dont le prix est supérieur à 60 en diminuant leur prix de 15 % ?
Réponse 21: Utilisez updateMany() avec l'opérateur $gt pour sélectionner les produits et $mul pour réduire leur prix de 15 % : - Q.22puis-je supprimer la catégorie "category1" de tous les produits qui ont à la fois cette catégorie et le mois de promotion "janvier" ?
Réponse 22: Utilisez updateMany() avec les opérateurs $elemMatch et $pull pour supprimer la catégorie de ces produits : - Q.23puis-je mettre à jour le prix de tous les produits en fonction de leurs catégories, en ajoutant 5 à tous les produits de la catégorie "category1" et en soustrayant 3 à tous les produits de la catégorie "category2" ?
Réponse 23: Utilisez updateMany() avec l'opérateur $each et $map pour mettre à jour le prix en fonction de la catégorie : - Q.24puis-je supprimer complètement la catégorie "category2" de tous les produits, même s'ils ne l'ont pas ?
Réponse 24: Utilisez updateMany() avec l'opérateur $unset pour supprimer complètement la catégorie de tous les produits, même s'ils ne l'ont pas : - Q.25puis-je mettre à jour le nom du fournisseur à "fournisseur3" pour tous les produits ?
Réponse 25: Utilisez updateMany() avec l'opérateur $set pour mettre à jour le nom du fournisseur de tous les produits : - Q.26puis-je supprimer le mois de promotion "février" de tous les produits ?
Réponse 26: Utilisez updateMany() avec l'opérateur $pull pour supprimer le mois de promotion de tous les produits : - Q.27puis-je ajouter le mois de promotion "juin" à tous les produits ?
Réponse 27: Utilisez updateMany() avec l'opérateur $push pour ajouter le nouveau mois de promotion à tous les produits : - Q.28puis-je mettre à jour le numéro de téléphone de tous les fournisseurs à "0319999" ?
Réponse 28: Utilisez updateMany() avec l'opérateur $set pour mettre à jour le numéro de téléphone de tous les fournisseurs : - Q.29puis-je ajouter un mois de promotion "décembre" à tous les produits ?
Réponse 29: Utilisez updateMany() avec l'opérateur $push pour ajouter le mois de promotion à tous les produits : - Q.30puis-je supprimer complètement la catégorie "category1" de tous les produits, même s'ils ne l'ont pas ?
Réponse 30: Utilisez updateMany() avec l'opérateur $pull pour supprimer complètement la catégorie de tous les produits, même s'ils ne l'ont pas : - Q.31puis-je mettre à jour le prix de tous les produits de la catégorie "category1" en augmentant leur prix de 10 % ?
Réponse 31: Utilisez updateMany() avec l'opérateur $set pour mettre à jour le prix des produits de la catégorie "category1" en augmentant de 10 % : - Q.32puis-je supprimer le mois de promotion "mars" de tous les produits qui ont la catégorie "category1" ?
Réponse 32: Utilisez updateMany() avec l'opérateur $pull pour supprimer le mois de promotion "mars" des produits ayant la catégorie "category1" : - Q.33puis-je ajouter la catégorie "category3" avec une description à tous les produits qui ont la catégorie "category1" ?
Réponse 33: Utilisez updateMany() avec l'opérateur $push pour ajouter la nouvelle catégorie aux produits ayant la catégorie "category1" : - Q.34puis-je supprimer la catégorie "category1" de tous les produits qui ont la catégorie "category2" ?
Réponse 34: Utilisez updateMany() avec l'opérateur $pull pour supprimer la catégorie "category1" des produits ayant la catégorie "category2" : - Q.35puis-je mettre à jour le prix du produit "produit1" en utilisant l'opérateur $inc pour augmenter le prix de 5 ?
Réponse 35: Utilisez updateOne() avec l'opérateur $inc pour augmenter le prix du produit "produit1" de 5 : - Q.36puis-je supprimer complètement la catégorie "category1" de tous les produits, même s'ils ne l'ont pas ?
Réponse 36: Utilisez updateMany() avec l'opérateur $unset pour supprimer complètement la catégorie "category1" de tous les produits, même s'ils ne l'ont pas : - Q.37puis-je mettre à jour le nom de la catégorie "category1" en "categoryOne" pour tous les produits qui ont cette catégorie ?
Réponse 37: Utilisez updateMany() avec l'opérateur $set pour mettre à jour le nom de la catégorie "category1" en "categoryOne" pour tous les produits qui ont cette catégorie : - Q.38puis-je ajouter le mois de promotion "juillet" à tous les produits qui ont la catégorie "category1" ?
Réponse 38: Utilisez updateMany() avec l'opérateur $push pour ajouter le mois de promotion "juillet" à tous les produits ayant la catégorie "category1" : - Q.39puis-je mettre à jour la quantité de tous les produits en utilisant l'opérateur $inc pour diminuer la quantité de 5 unités ?
Réponse 39: Utilisez updateMany() avec l'opérateur $inc pour diminuer la quantité de tous les produits de 5 unités : - Q.40puis-je ajouter le produit "produit3" avec les détails fournis, en utilisant l'opérateur upsert pour ajouter s'il n'existe pas ou mettre à jour s'il existe déjà ?
Réponse 40: Utilisez updateOne() avec l'opérateur upsert pour ajouter le produit "produit3" s'il n'existe pas ou le mettre à jour s'il existe déjà :