Document Embeded :update,updateOne , UpdateMany

comment maniupler un document à l'intérieur d'un autre document
Dans note exemple on a: founisseur un document inclus dans le document de la collection produits syntaxe
{
  _id: 1,
  nom: 'produit1',
  prix: 65.2,
  quantite: 45,
  category: [
    {
      _id: 1,
      nom: 'category1',
      description: 'une description de la catégorie1'
    },
    {
      _id: 2,
      nom: 'category2',
      description: 'une description de la catégorie2'
    }
  ],
  marque: 'marqueB',
  moisPromotion: [
    'septembre',
    'juin',
    'juillet'
  ],
  
  fournisseur: {
    _id: 1,
    nom: 'fournisseur5',
    tel: '0315455'
  },
  
  sizes: [
    200,
    200,
    200,
    200
  ]
}

updateOne()

Changer le document fournisseur du document id=1 avec le fournisseur:
_id:2
nom: 'fournisseur2',
tel: '065211'
	
db.produits.updateOne({"_id":1},{$set:{"fournisseur":{ _id:2, nom: 'fournisseur2', tel: '065211' }}})
Modifier le champs tel en 015445 pour le fournisseur qui a _id=2
db.produits.updateOne({"fournisseur._id":2},{$set:{"fournisseur.tel":"015445"}})

updateMany()

Ajouter le champs reduction =15 pour tout les fournisseur de la marque marque1
db.produits.updateMany({"marque":"marque1"},{$set:{"fournisseur.reduction":15}})
Supprimer le champs reduction du document fournisseur pour les produits qui ont le prix <10
db.produits.updateMany({"prix":{$lt:10}},{$unset:{"founisseur.reduction":""}})
incrementer le champs reduction par 10 pour le document fournisseur si le champs sizes contient les valeur 12 et 15
db.produits.updateMany({"sizes":{$all:[12,15]}},{$inc:{"fournisseur.reduction":10}})
Supprimer les deux premières promotion pour les produits qui ont une reduction >15
db.produits.updateMan({"fournisseur.reduction":{$gt:15}},
 {$unset:{
	"moisPromotion.0":"",
	"moisPromotion.1":""
	}
}
)
augmenter les sizes par 10 pour tout les produits qui ont une reduction >10 et 3 promotion
db.produits.updateMany({$and:[{"fournisseur.reduction":{$gt:10}},{"moisPromotion":{$size:3}}]},
	{
		$inc:{"sizes.$[]":10}
	})
ajouter les trois premières promotion avril ,mars ,juin pour les produits qui ont un fournisseur qui propose une réductioon de 15 et apparient à la marque marqueB
db.produits.updateMany({$and:[{"fournisseur.reduction":{$eq:15}},{"marque":"marqueB"}]},
		{
			$push:{
				"moisPromotion":{
					$each:["avril","mars","juin"],
					$position:0
					},
				
			}
		})
Modifier les trois premières promotion par septembre ,octobre ,janvier pour les produits qui ont un fournisseur qui propose une réductioon de 15 et apparient à la marque marqueB
db.produits.updateMany({$and:[{"fournisseur.reduction":{$eq:15}},{"marque":"marqueB"}]},
		{
			$set:{
				"moisPromotion.0":"septembre",
				"moisPromotion.1":"octobre",
				"moisPromotion.2":"janvier",
				
			}
		})