‫-: Content de te revoir.
‫J'espère que vous vous amusez jusqu'à présent dans cette section.
‫Je sais que je le suis et continuons donc
‫maintenant à avancer et à apprendre à mettre à jour des documents avec Mongodb.
‫Donc, de retour dans notre mongoshell,
‫utilisons maintenant db. tournées. updateOne.
‫D'accord?
‫C'est donc similaire à . insertone que nous avons
‫utilisé pour créer un nouveau document.
‫Et rappelez-vous comment nous avons également eu. insertmany et donc
‫nous avons aussi . mise à jour beaucoup.
‫Maintenant, comment . mise à jourbeaucoup de travail ?
‫Eh bien, nous devons d'abord sélectionner
‫les documents que nous voulons réellement mettre à jour et,
‫deuxièmement, nous devons transmettre les données qui doivent être mises à jour.
‫Ainsi, le premier argument est essentiellement un objet
‫filtre, comme nous l'avons appris dans la dernière leçon.
‫Nous devons donc essentiellement rechercher
‫les documents que nous voulons mettre à jour et
‫commençons par cela de manière très simple.
‫Je vais donc simplement sélectionner en
‫fonction du
‫nom The Snow Adventure.
‫D'accord?
‫C'est donc mon objet de filtre très
‫simple, donc en spécifiant la tournée que je veux mettre à jour Et
‫maintenant, le deuxième objet que
‫je dois spécifier est ce que je veux réellement mettre à jour.
‫Donc un autre objet ici et puis nous fermons la fonction.
‫Et donc ici, nous devons utiliser l'opérateur set.
‫Donc, encore une fois, cela fonctionne en utilisant des
‫opérateurs comme dans ces requêtes complexes que nous avons vues dans la dernière vidéo.
‫Donc défini et ensuite nous devons créer encore un autre
‫objet et enfin dans celui-ci nous pouvons spécifier la propriété que nous
‫voulons mettre à jour et la valeur que nous voulons lui attribuer.
‫Donc, dans ce cas,
‫ce que nous voulons faire, c'est fixer le prix à 597.
‫D'accord?
‫Celui-ci était donc de 497 et nous l'augmentons
‫maintenant, en gros, à 597.
‫D'accord?
‫Alors appuyons sur retour et c'est ensuite mis à jour, notre tournée.
‫Maintenant, si cette requête ici aurait
‫correspondu à plusieurs documents.
‫Je ne peux pas le sélectionner pour une raison
‫quelconque, mais vous pouvez le voir.
‫Donc, si cette requête que nous
‫avons faite ici avait sélectionné plusieurs documents, seul le
‫premier aurait été mis à jour car nous
‫utilisions . updatemain.
‫Et donc si nous savons déjà à l'avance que
‫notre requête va correspondre à plusieurs documents, alors nous
‫devons utiliser . updatemany et
‫non. mettre à jour un.
‫D'accord?
‫Maintenant, juste pour vous montrer
‫que cela a réellement fonctionné, examinons tous les documents.
‫Donc db. tournées. trouver et, en effet, nous
‫avons The Snow Adventure ici avec
‫le nouveau prix.
‫Super.
‫Nous avons donc mis à jour une propriété qui existait déjà.
‫Le prix était donc déjà là et nous
‫l'avons simplement défini sur une nouvelle valeur, mais nous pouvons également
‫créer de nouvelles propriétés et les définir sur de nouvelles valeurs, bien sûr.
‫Et cela fonctionne en fait de la même manière,
‫mais laissez-moi vous le montrer quand même.
‫Et ce que je veux faire ici, c'est trouver des
‫circuits premium et leur donner un champ premium défini sur true.
‫Alors, quels sont nos circuits premium ?
‫Eh bien, faisons d'abord une recherche.
‫Donc juste pour spécifier cette requête.
‫Et en fait, nous l'avons déjà fait avant.
‫Ainsi, les circuits que je souhaite doivent avoir un prix supérieur à 500
‫et une note supérieure ou égale à 4. 8.
‫Ce sont donc vraiment nos circuits premium, en gros,
‫donc vraiment ceux qui sont les plus
‫chers et les mieux notés.
‫Donc, pour créer cette requête, c'est en fait assez simple.
‫Et encore parce que nous l'avons déjà fait avant.
‫Maintenant, ce que je veux que vous fassiez ici, c'est de
‫mettre la vidéo en pause et même
‫si vous vous en souvenez, tapez cette requête par vous-même.
‫Et si vous ne vous en souvenez pas, c'est encore mieux alors
‫vous pouvez mettre en pratique ce que vous venez
‫d'apprendre dans la dernière vidéo.
‫D'accord?
‫Alors s'il vous plaît, mettez la vidéo en pause ici
‫et essayez de trouver cette requête par vous-même.
‫Encore une fois, nous voulons que le prix soit supérieur à 500 et
‫que la note soit supérieure ou égale à 4. 8.
‫D'accord, j'espère que vous l'avez fait.
‫Et c'est la solution.
‫Le prix doit donc être supérieur ou égal à 500 et la note doit
‫être supérieure ou égale à 4. 8.
‫D'accord?
‫Et ici, nous définissons juste plus grand que ce
‫qui est en fait le même.
‫Ça va nous donner le même résultat.
‫Mais peu importe, faisons-le exactement comme je l'ai dit.
‫Et donc juste pour être sûr, voyons si nous obtenons
‫le résultat parfait et en effet c'est la
‫tournée qui a ce prix premium et en même temps
‫cette note premium.
‫D'accord?
‫Et dans ce cas, nous n'avons qu'un seul résultat
‫mais, bien sûr, nous pouvons avoir plusieurs résultats.
‫Et donc utilisons maintenant . mise à jour beaucoup.
‫Donc db. tournées. mise à jour beaucoup.
‫Et donc notre objet filtre que nous voulons est celui-ci.
‫Donc je le copie juste d'ici.
‫C'est donc le premier argument, puis le
‫deuxième est en fait ce que nous voulons mettre à jour.
‫Vous vous en souvenez ?
‫Donc encore une fois, nous utilisons l'opérateur set
‫et ensuite nous disons que nous voulons que premium soit vrai.
‫D'accord?
‫Et donc cette fois, nous créons en fait un nouveau champ
‫ici et nous le définissons sur true.
‫D'accord?
‫Donnez-lui une sauvegarde et en fait, il nous manquait une
‫accolade de fermeture et nous ne pouvons donc pas vraiment revenir en
‫arrière, alors laissez-moi essayer de l'ajouter ici.
‫Mais, cela ne fonctionne pas vraiment, mais de toute façon,
‫cela n'a pas d'importance, nous pouvons simplement revenir
‫à la dernière commande, puis la corriger.
‫C'est donc le croisillon qui nous manquait
‫alors fermez-le et c'est parti.
‫Donc db. tournées. trouver juste pour le vérifier maintenant.
‫Et ici, nous avons le dernier qui a maintenant
‫la valeur premium définie sur true.
‫Et encore une fois, c'était le seul
‫document qui correspondait à notre requête et c'est donc le seul qui
‫a obtenu
‫cette nouvelle propriété premium ici, mais s'il y
‫avait plusieurs documents correspondant à cette requête, alors tous
‫auraient obtenu cette prime vraie.
‫D'accord?
‫C'est pourquoi nous avons utilisé . updatemany et rappelez-vous
‫si nous avons utilisé . updateone alors seul le
‫premier document correspondant à la requête est mis à jour.
‫D'accord?
‫C'est ainsi que nous mettons à jour les documents au moins partiellement
‫avec ce fichier . updatemany ou . updateone, nous ne
‫mettons généralement à jour que des parties du document,
‫mais nous pouvons également remplacer complètement le contenu du document.
‫Et pour cela nous utilisons . remplacer un.
‫Je ne vais pas le faire,
‫mais par souci d'exhaustivité, je voulais aussi vous le montrer.
‫Donc db. tournées. remplacer un ou . remplacer beaucoup, d'accord ?
‫Et donc ici, comme avant, vous passeriez
‫la requête de recherche, puis les nouvelles données que vous
‫souhaitez mettre dans ce document.
‫Très bien, je ne vais pas faire ça ici.
‫Mais maintenant vous savez qu'il existe aussi.
‫Et comme ça, nous avons déjà terminé trois
‫de nos opérations correctes.
‫Donc créer, lire et mettre à jour et comme vous pouvez
‫le deviner dans la prochaine vidéo, nous parlerons
‫de la suppression de documents.