‫Instructeur : La recherche de données dans une base de données
‫est l'une des opérations les plus importantes que nous ayons dans les bases de données.
‫Et donc, examinons maintenant quelques opérateurs de requête dans
‫MongoDB, en commençant par des requêtes simples,
‫puis en passant à des requêtes vraiment complexes.
‫Et, pour commencer, laissons-nous un peu d'espace ici.
‫Et donc, vous le savez déjà, le moyen
‫le plus simple de rechercher tous les
‫documents d'une certaine collection consiste simplement à utiliser
‫find sans rien y transmettre.
‫C'est donc ce que nous avons fait jusqu'à présent.
‫Et donc, cela nous donne simplement ce
‫résultat avec tous les
‫documents qui se trouvent dans une
‫certaine collection essentiellement sans aucun critère de recherche.
‫Mais, maintenant, disons que nous ne voulons en fait qu'une seule tournée et
‫que nous connaissons déjà son nom.
‫Et ainsi, nous pouvons rechercher cette
‫tournée en utilisant le nom que nous connaissons.
‫Et donc, nous nous db. visites et, encore une
‫fois, trouver.
‫Mais, cette fois, nous allons passer un objet filtre.
‫Donc, encore une fois, nous avons besoin d'un objet ici.
‫Et donc, vous commencez à voir maintenant
‫que dans MongoDB, vraiment tout fonctionne avec des objets.
‫Et, ce sera encore plus important un peu plus tard
‫dans cette conférence.
‫Ainsi, à l'intérieur de cet objet, nous passons dans le filtre.
‫Donc, en gros, les
‫critères de recherche que nous voulons rechercher.
‫Donc, nous définissons simplement le nom sur le nom de
‫la tournée que nous voulons rechercher.
‫Alors, disons The Forest Hiker.
‫Et, c'est en fait ça.
‫Il s'agit donc de nos critères de recherche ou du filtre de recherche.
‫Et, si nous étions
‫revenus maintenant, alors nous n'aurions que cette
‫seule tournée où le nom correspond exactement à celui que nous avons passé.
‫Et, bien sûr, nous pourrions faire la même chose pour n'importe quoi d'autre.
‫Par exemple, pour la
‫difficulté, nous pourrions rechercher des circuits qui ont
‫une difficulté facile.
‫Donc, difficulté et facile.
‫Fermez l'objet, fermez la fonction.
‫Et ainsi, nous obtenons tous les circuits où la difficulté est facile.
‫À l'heure actuelle, il n'y a qu'une seule
‫tournée, mais si nous avions plusieurs tournées avec
‫difficulté réglée sur
‫facile, alors, bien sûr, tous ces documents seraient renvoyés.
‫C'est donc le moyen le
‫plus simple de rechercher des documents.
‫Passons maintenant au niveau supérieur
‫en utilisant des opérateurs de requête spéciaux.
‫Et ce que je veux faire, c'est rechercher des circuits
‫dont le prix est inférieur à 500.
‫Et, la façon dont cela fonctionne est comme ça.
‫Donc, nous utilisons toujours db. Le nom de la collection. trouve.
‫Et puis, à nouveau, ou filtrer l'objet.
‫Et donc, souvenez-vous, je veux rechercher des prix,
‫alors je dis prix.
‫Et maintenant, je veux toutes les visites avec un prix inférieur à 500.
‫Alors, comment faire ?
‫Eh bien, j'ai besoin d'utiliser l'opérateur moins que et
‫cela fonctionne comme ceci.
‫Nous devons encore définir un nouvel
‫objet dans lequel nous définissons la propriété lte sur 500,
‫puis fermons cet
‫objet, puis fermons ce premier objet de
‫prix, puis fermons la fonction.
‫Donc, cela semble très étrange, je sais, mais
‫c'est ainsi que nous utilisons les opérateurs de requête dans MongoDB.
‫Donc, encore une fois, lte signifie moins que parce que
‫c'est ce que nous recherchons.
‫Où le prix est inférieur à 500.
‫Et, ce signe spécial ici est réservé dans
‫MongoDB pour ses opérateurs.
‫Ainsi, chaque fois que vous voyez ce signe dollar ici dans
‫MongoDB, vous savez qu'il s'agit d'un opérateur Mongo.
‫Donc, la partie la plus étrange
‫ici est probablement que nous devons le faire à l'intérieur
‫d'un nouvel objet, mais si vous y réfléchissez, c'est en fait
‫la seule façon de spécifier que le prix ne doit pas être simplement 500,
‫mais autre chose.
‫Donc, nous devons fixer le prix à autre chose que 500.
‫Et, le meilleur moyen
‫est vraiment d'utiliser un autre objet là-dedans.
‫C'est donc exactement comme cela que MongoDB fonctionne.
‫Alors, essayons cela maintenant, appuyez sur retour.
‫Et, en effet, nous obtenons
‫nos deux documents où le prix de propriété est inférieur à 500.
‫Super, maintenant, recherchons en fait
‫deux critères de recherche en même temps.
‫Donc, ce que je veux faire ensuite, c'est rechercher
‫des documents qui ont le prix inférieur ou égal à 500,
‫ce que nous avions déjà ici,
‫mais aussi, en même temps, la note supérieure ou égale
‫à 4. 8.
‫Et donc, cela ne devrait alors nous donner que ce tour ici.
‫Donc, seulement celui-ci
‫car c'est le seul qui a le prix inférieur à 500
‫et la note égale ou supérieure à 4. 8.
‫Donc, c'est 4. 8 et donc celui-ci
‫est celui qui devrait correspondre à notre requête.
‫Alors, mettons les choses au clair pour éliminer une partie de la confusion.
‫Maintenant, je veux ce résultat ici
‫afin que nous puissions le comparer avec le résultat suivant.
‫Et donc, écrivons maintenant la requête que je viens de décrire.
‫Alors, trouvez et, encore une fois, celui-ci ici sera
‫exactement le même.
‫Donc, nous voulons que le prix soit inférieur ou égal à 500.
‫Ou, nous pourrions simplement dire moins de 500.
‫Ainsi, lte est inférieur ou égal et lt est simplement inférieur à.
‫Donc, c'est la première partie, le prix inférieur à 500.
‫Et, en même temps, nous voulons que la note soit supérieure ou
‫égale à 4. 8.
‫Et, c'est facile.
‫Tout ce que nous avons à faire est de spécifier un deuxième
‫champ dans notre objet filtre.
‫Donc, d'abord, le prix et maintenant la note.
‫Donc, nous voulons que la note
‫soit et vous pouvez
‫probablement la deviner, supérieure ou égale à 4. 8.
‫Maintenant, fermez cet objet filtre et fermez la fonction.
‫Alors, testons-le.
‫Et, en effet, cela nous donne le résultat que nous attendions.
‫Donc, le seul document où les deux critères de recherche ici
‫sont vrais en même temps.
‫Donc, pour récapituler, lorsque nous voulons rechercher
‫deux critères en même temps,
‫qui est essentiellement une requête et, donc prix
‫inférieur à 500 et note supérieure ou égale à
‫4. 8.
‫Eh bien, la seule chose que
‫nous devons faire est de spécifier deux champs dans l'objet filtre.
‫Et, je sais que cela semble assez déroutant.
‫J'ai ressenti exactement la même chose lorsque j'ai appris ce genre
‫de choses, mais j'espère que
‫vous pourrez toujours me suivre afin que nous puissions maintenant aller encore plus loin.
‫Donc, ici, nous avons fait une requête et.
‫Donc, interrogeant des documents où ces deux conditions
‫sont toutes les deux vraies, mais faisons maintenant une requête ou.
‫Donc, en gros, recherchez tous les documents
‫où cette partie ici est vraie ou
‫cette partie est vraie.
‫Alors, db. tournées. trouvez-le et
‫fermons-le déjà ici car
‫cela va être encore plus déroutant.
‫Donc, nous voulons faire une requête ou et la façon dont
‫cela fonctionne avec les opérateurs MongoDB est la suivante.
‫Nous disons ou puis ici, nous spécifions un tableau.
‫Et, dans ce tableau, nous mettrons ensuite les deux conditions où nous
‫voulons que l'une d'entre elles soit vraie.
‫Donc, encore une fois, je sais que
‫cela semble déroutant, mais écrivons-le maintenant et je l'expliquerai à nouveau lorsque
‫nous le ferons déjà.
‫Ainsi, la première condition est que le
‫prix doit être inférieur à 500.
‫Donc en gros le même qu'avant.
‫C'est donc le premier objet.
‫Donc, tout cela, donc la première condition,
‫essentiellement le premier filtre, puis
‫le second.
‫Ainsi, la note doit être, comme avant, supérieure
‫ou égale à 4. 8.
‫Fermez celui-ci et fermez celui-ci.
‫Et donc, c'est en fait déjà ça.
‫Donc, encore une fois, pour récapituler ici, nous commençons par l'opérateur ou
‫et l'opérateur ou accepte un tableau de conditions.
‫C'est pourquoi nous créons ensuite ce tableau ici
‫et ce tableau contiendra alors essentiellement
‫un objet pour chacun de nos filtres.
‫Donc, nous voulons que celui-ci soit vrai
‫ou celui-ci.
‫Essayons donc de voir quels seront nos résultats.
‫Et donc, en fait, nous obtenons les trois tournées.
‫Et donc, analysons pourquoi.
‫Ainsi, le premier a un prix inférieur à 500.
‫Et donc, c'est pourquoi il a été inclus ici.
‫Il n'a pas la note supérieure ou égale à 4. 8, donc
‫c'est juste 4. 7, mais puisque nous effectuons une
‫requête ou ici, une seule des conditions doit être vraie.
‫Et donc, c'est pourquoi ce document ici a été sélectionné
‫et est inclus dans notre sortie.
‫Ensuite, celui-ci a également un prix inférieur ou égal à 500 et, en même
‫temps, il a une note supérieure ou égale
‫à 4. 8.
‫Et donc, cela a été inclus en fait
‫pour que les deux soient vrais.
‫Ensuite, le dernier n'a pas le prix inférieur à 500, mais il a la
‫note supérieure ou égale à 4. 8.
‫Et donc, encore une fois, l'une des deux conditions est
‫vraie et puisque nous faisons une requête ou, cette
‫visite a également été incluse.
‫Alors, clarifions ceci et un seul de
‫plus, qui sera un peu la même chose.
‫Je vais simplement passer de moins que à plus grand que.
‫Et, ce que je veux que vous
‫fassiez maintenant, c'est de deviner la sortie de celui-ci
‫en fonction du résultat précédent.
‫Alors, pouvez-vous deviner quel sera le résultat?
‫Alors, jetons un coup d'œil.
‫Et donc, maintenant, en effet, nous n'avons plus les trois tournées, mais seulement
‫la deuxième et la troisième car, rappelez-vous, la
‫première tournée avait le prix inférieur
‫à 500 et aussi la note inférieure
‫à 4. 8.
‫Et donc, aucune des conditions ne s'appliquait et
‫donc ce n'est plus inclus.
‫Seuls le deuxième et le troisième,
‫dont le prix ne dépasse désormais pas 500, mais il a la note
‫de 4. 8 et
‫il est donc toujours inclus.
‫Et, le dernier, bien sûr, a tout vrai et
‫donc, bien sûr, il est aussi ici.
‫Juste une dernière chose que je voulais vous
‫montrer ici, c'est qu'en plus de notre objet filtre, donc
‫celui-ci, nous pouvons également passer un objet pour la projection.
‫Donc, ce que la projection signifie, c'est que
‫nous voulons simplement sélectionner certains des champs dans la sortie.
‫Alors, laissez-moi vous le montrer et c'est très simple.
‫Tout ce que nous avons à faire est, par exemple, de dire que le nom est égal à un.
‫Donc, cela signifie que nous voulons seulement que le
‫nom soit dans la sortie et c'est pourquoi nous définissons le nom sur un.
‫Tous les autres n'apparaîtront pas dans ce cas.
‫Alors, laissez-moi vous montrer cela.
‫Et, en effet, nous n'avons que le
‫nom et non plus toutes ces autres propriétés.
‫Et cela peut être très utile dans certains cas.
‫L'idée est, bien sûr, aussi présente, mais elle
‫est toujours là.
‫Il n'y a aucun moyen de supprimer cela.
‫D'accord, cool.
‫Donc, je pense que l'objectif principal de cette conférence est
‫maintenant atteint, qui était essentiellement de
‫vous familiariser avec la façon dont nous interrogeons
‫dans MongoDB et de vous montrer également ces opérateurs MongoDB complexes que
‫nous avons ici.
‫Pour une raison quelconque, je ne peux pas le sélectionner,
‫mais vous savez ce que je veux dire.
‫Donc, nous avons plus que,
‫nous avons ou, et nous avons vraiment encore
‫une tonne d'autres opérateurs.
‫Donc, ce n'est que la
‫surface, mais tout au long du reste du cours,
‫vous ferez bien sûr la connaissance de quelques autres opérateurs.
‫Donc, c'est juste pour
‫vous familiariser avec les requêtes dans MongoDB.
‫Et, je pense que dans cette conférence, nous l'avons fait avec succès.