‫Instructeur : Dans cette
‫conférence, nous allons en apprendre davantage sur les requêtes géospatiales afin
‫de mettre en œuvre une fonctionnalité vraiment
‫intéressante, qui consiste à fournir une fonctionnalité de recherche pour les
‫visites à une certaine distance d'un point spécifié.
‫Supposons donc que vous
‫habitiez à un certain point et que vous vouliez savoir quelles
‫visites commencent à une certaine distance de vous, comme 250 miles, parce
‫que vous ne voulez pas conduire plus loin
‫que cela pour commencer votre expérience de visite.
‫Ce serait donc une fonctionnalité géniale
‫et un très bon cas d'utilisation des requêtes géospatiales.
‫Et pour implémenter quelque chose comme ça, ici
‫dans notre routeur de tournée, nous pourrions créer un bel
‫itinéraire, quelque chose comme ça.
‫Je vais donc le mettre ici avant ces itinéraires généraux
‫ici.
‫Alors disons un itinéraire de point de routeur, et je
‫vais appeler celui-ci des tournées à l'intérieur, d'accord ?
‫Ensuite, nous devons également spécifier la distance.
‫Et donc nous créons ici un paramètre de distance.
‫Ensuite, nous devons également spécifier le
‫centre, et c'est essentiellement le point où vous vivez.
‫Alors spécifions-le autour du centre, puis de la barre oblique, puis de
‫la latitude et de la longitude.
‫Donc en gros dans cette variable
‫ici, vous voulez passer les coordonnées de l'endroit où
‫vous vous trouvez.
‫Supposons donc que vous habitiez à Los
‫Angeles et que vous vouliez trouver toutes les visites dans
‫un rayon de 300 miles.
‫Donc ici vous diriez 300,
‫et puis ici vous mettriez les
‫coordonnées de l'endroit où vous habitez, d'accord ?
‫Ensuite, offrons également la possibilité de spécifier
‫l'unité.
‫Donc si cette distance ici est en kilomètres ou en miles.
‫Disons donc, unité de
‫barre oblique, et l'unité comme paramètre.
‫Maintenant, cette façon de spécifier une URL est quelque chose que
‫nous n'avons jamais fait auparavant.
‫Donc, en gros, dire ici centre et barre
‫oblique et mettre la longitude et la
‫latitude après cela, puis
‫l'unité de barre oblique, puis le paramètre de requêtes.
‫Et bien sûr,
‫nous pourrions également faire en sorte que l'utilisateur
‫spécifie toutes ces options à l'aide d'une chaîne de requête,
‫mais de cette façon, cela semble beaucoup plus propre et c'est aussi une sorte de moyen standard
‫de spécifier des URL qui contiennent beaucoup d'objets.
‫Donc ce que je disais c'est qu'à la place on pourrait
‫le faire bien sûr comme ça.
‫La distance des tours, puis l'utilisateur devrait fournir la distance
‫comme celle-ci ici.
‫Et le centre comme celui-ci, disons moins
‫40 et 45, puis l'unité se règle également en miles.
‫D'accord, cela a donc été une façon d'utiliser des chaînes
‫de requête et nous l'avons déjà fait.
‫Et en fait pas comme ça, mais comme ça.
‫D'accord, mais à la place, nous allons
‫le spécifier à nouveau comme ceci.
‫Ce qui, à mon avis, a l'air bien plus joli.
‫Donc moins 40, 45.
‫D'accord, alors pensez que ceci ici
‫a vraiment l'air beaucoup plus propre que cela.
‫D'accord, et c'est une autre chose que
‫je voulais vous montrer, c'est
‫que c'est une sorte de norme de spécification d'URL comme celle-ci, d'accord ?
‫Quoi qu'il en
‫soit, pour cet itinéraire bien sûr, nous avons besoin
‫d'un gestionnaire d'itinéraire, et ce sera au
‫niveau du contrôleur de tournée, et appelons cette fonction de gestionnaire obtenir les tournées à l'intérieur.
‫Et donc, allons de l'avant et implémentons cette
‫méthode sur ce gestionnaire.
‫Alors contrôleur de tournée et juste ici.
‫Et commençons par obtenir tous les paramètres.
‫Alors permettez-moi de copier tout cela ici.
‫Et juste pour que nous sachions à quoi ressemblent nos données.
‫D'accord?
‫Donc ceci, et puis cela a un commentaire.
‫Très bien, alors utilisons une simple restructuration pour obtenir toutes
‫nos données à la fois à partir des paramètres.
‫Et en fait,
‫nous devons dire const, distance et unité.
‫Donc, tout cela vient des paramètres de point de requête.
‫D'accord, donc sur req. params, nous avons la distance du
‫point, le centre du point et l'unité du point, n'est-ce pas ?
‫Car ce sont les noms des
‫trois paramètres que nous avons spécifiés ici.
‫Et en fait
‫ce n'est pas le centre, c'est latlng ici,
‫d'accord, donc c'est le bon, et puis enfin l'unité.
‫Encore une fois, nous utilisons la restructuration pour obtenir toutes
‫ces variables à la fois.
‫Ensuite, obtenons en fait toutes les coordonnées
‫de cette variable de latitude et de longitude ici.
‫Comme nous le voyons, nous attendons les données dans un format comme celui-ci,
‫ce qui facilite vraiment la copie de ces données à
‫partir de Google Maps.
‫Alors permettez-moi de vous le montrer rapidement.
‫Il est important que vous compreniez comment ce genre
‫de choses fonctionne également dans la pratique.
‫Utilisons donc l'exemple de Los Angeles ici.
‫D'accord, et disons que vous habitez quelque part ici.
‫D'accord, et vous pouvez donc très facilement obtenir la latitude et
‫la longitude comme ça, d'accord ?
‫Alors mettez cela ici, juste comme exemple à nouveau.
‫Et c'est donc le format.
‫Cela ressemble à la latitude et à la longitude.
‫Et donc créons maintenant une variable pour chacun d'eux.
‫Donc un pour la latitude et un pour la longitude.
‫Donc lat longitude point divisé parce que c'est une chaîne et
‫nous voulons la diviser par une virgule.
‫Et donc cela créera alors un tableau de
‫deux éléments, et maintenant nous pouvons à nouveau utiliser le destructing afin
‫de les enregistrer dans les deux variables qui nous intéressent.
‫Donc latitude et longitude.
‫Bon, maintenant, je veux tester si nous avons réellement les
‫variables de longitude et de latitude à trouver.
‫Parce que sinon, cela signifie que l'utilisateur ne les a
‫pas spécifiés dans le format requis.
‫Supposons donc que s'il n'y
‫a pas de latitude ou de longitude, nous voulons créer une nouvelle erreur.
‫Donc, comme toujours, une nouvelle erreur d'application, et je ne sais pas si
‫nous l'avons toujours, ici, et en fait, nous
‫ne l'avons pas.
‫Nous avons donc commenté cette partie parce que nous n'avions plus
‫besoin de l'erreur d'application après avoir créé nos fonctions
‫d'usine de gestionnaire, mais maintenant, nous en avons à nouveau
‫besoin, alors ramenons-la.
‫Et le message ici va
‫être s'il vous plaît fournir, dans le format, comme celui-ci.
‫Et le code d'erreur 400 pour cette demande.
‫Génial, et maintenant juste pour voir si tout
‫cela fonctionne
‫correctement, déconnectons-nous simplement de cela sur la console.
‫La distance que la longitude et l'unité.
‫Et envoyons également un message générique ici, juste
‫pour vraiment terminer le cycle de demande de réponse.
‫Et pour cela, bien sûr, c'est comme toujours.
‫Donc statut réussi pour l'instant, et bien sûr plus tard,
‫nous enverrons les données que la requête renvoie.
‫Donc en fait, copions ceci ici.
‫Parce que ce genre de c'est déjà ce que nous voulons.
‫Alors de retour dans Postman, terminons tout ça.
‫Celui-ci dont nous n'avons plus besoin.
‫Très bien, nous n'avons pas non plus besoin d'être connectés, et nous
‫ne voulons pas non plus de mises à jour.
‫Donc de toute façon, nous devons également obtenir cette partie que
‫je suis trop paresseux pour écrire.
‫Et donc testons cela maintenant.
‫Et cela n'a pas fonctionné,
‫et je pense que celui-ci nous avons appelé des tournées en fait.
‫Avons-nous?
‫Donc visites à l'intérieur.
‫Donc, je ne sais pas pourquoi
‫j'ai écrit distance ici, corrigeons cela rapidement ici dans nos exemples.
‫Et bien sûr, ce sont des visites à l'intérieur.
‫Et cela ne fonctionne toujours pas, alors jetons un coup d'œil à la mise en
‫œuvre de l'itinéraire ici en fait.
‫Nous avons donc ici cela, et
‫oui bien sûr, ce n'est pas du tout correct.
‫Donc, celui-ci ici ne devrait pas être à l'intérieur de la route des points, évidemment.
‫Mais au lieu de cela, il devrait être dans la méthode get.
‫Et maintenant, cela ressemble beaucoup plus à ce que
‫nous avons ici.
‫Donc dot route, puis dot get.
‫Donc un essai de moins et cette fois ça a marché.
‫Et jetons un coup d'œil à
‫la console, et en effet, ici nous
‫obtenons la distance qui est spécifiée la latitude à la longitude, et l'unité.
‫Génial, et maintenant il est temps
‫d'écrire la requête elle-même.
‫Désormais, une requête géospatiale fonctionne de
‫manière assez similaire à une requête normale.
‫Donc, nous allons toujours écrire des tournées égales à une tournée. trouver, et bien
‫sûr, en attendant le résultat de cette promesse.
‫Et puis le vieux jeu de tout
‫marquer comme asynchrone, puis d'attraper l'async et d'y encapsuler notre
‫fonction.
‫Nous avons donc toutes les tournées
‫ici inutilisées, et allons donc de l'avant et éditons l'objet de
‫réponse tout de suite.
‫Donc les données, et maintenant rappelez-vous comment nous les appelions données.
‫Et puis des tournées.
‫D'accord, et tout ce que nous avons à faire est
‫de spécifier ou de filtrer l'objet ici.
‫Rappelez-vous donc que nous
‫voulons essentiellement interroger l'emplacement de départ,
‫car le champ d'emplacement de départ
‫est ce qui contient le point géospatial où chaque visite commence.
‫Et c'est exactement ce que nous recherchons.
‫Alors, commencez l'emplacement, et maintenant nous devons spécifier
‫la valeur que nous recherchons.
‫Et pour cela, nous allons maintenant utiliser un
‫opérateur géospatial appelé geo inside.
‫Comme toujours, nous devons
‫spécifier le sujet, puis ici, là où
‫nous utilisions auparavant comme un opérateur mathématique comme
‫supérieur à, nous utilisons cette fois un opérateur géospatial comme celui-ci.
‫Geo à l'intérieur, et cet opérateur fait exactement ce qu'il dit.
‫Fondamentalement, il trouve des documents dans une certaine géométrie.
‫Et cette géométrie est ce que nous devons définir comme prochaine étape.
‫Nous voulons donc trouver
‫des documents, mais où voulons-nous réellement trouver ces documents ?
‫Eh bien, nous voulons les trouver à l'intérieur d'une sphère qui
‫commence à ce point que nous avons défini
‫et qui a un rayon de la distance que nous avons définie.
‫Encore une fois, avec notre exemple à Los
‫Angeles, si vous spécifiez la
‫distance de 250 miles, cela signifie que vous voulez trouver
‫tous les documents de tournée dans une sphère qui a un rayon de 250 miles.
‫D'accord, ça a du sens ?
‫Et maintenant, nous devons transmettre
‫les informations ici à l'opérateur géo interne, d'accord ?
‫Et nous le faisons en définissant une sphère centrale.
‫D'accord, et encore une fois, je sais
‫que cela semble assez déroutant, mais c'est pourquoi je l'explique ici étape par étape.
‫Et aussi dans une seconde, nous
‫allons jeter un œil à la documentation.
‫Ainsi, l'opérateur de la sphère
‫centrale prend un tableau des coordonnées et du rayon.
‫Et formatons le code ici pour au
‫moins le rendre un peu plus facile, d'accord ?
‫Eh bien, c'est un peu la même chose, mais de toute façon,
‫c'est comme ça que vous trouvez les coordonnées ici.
‫Et pour cela, nous avons besoin d'un
‫autre tableau, puis de la longitude et de la latitude.
‫Et c'est vrai.
‫Vous devez d'abord toujours définir la
‫longitude, puis la latitude, ce qui est un peu
‫contre-intuitif car généralement les paires de coordonnées sont toujours spécifiées
‫avec la latitude en premier et la longitude en premier.
‫Je pense l'avoir mentionné avant que
‫dans geo adjacent, cela fonctionne pour une raison comme celle-ci.
‫C'est donc le centre de la sphère.
‫Maintenant, nous devons spécifier son rayon.
‫Maintenant, ici, nous ne passons pas au loin, mais à la
‫place, nous attendons un rayon dans une unité
‫spéciale appelée radians.
‫Alors laissez-moi mettre la variable de
‫rayon ici, puis dans une seconde, nous allons la définir.
‫Définissons donc maintenant le rayon.
‫Encore une fois, le rayon est essentiellement la
‫distance que nous voulons avoir
‫comme rayon, mais convertie en une unité spéciale appelée radians.
‫Et pour obtenir les radians,
‫nous devons diviser notre distance par le
‫rayon de la Terre.
‫Cela semble un peu fou, mais c'est vraiment comme ça que ça marche.
‫D'accord, alors maintenant nous devons prendre en
‫considération nos unités ici, car bien sûr le rayon
‫de la terre est différent en miles puis en kilomètres.
‫Faisons maintenant un tour de
‫plus grand ici et disons que si l'unité est égale aux miles,
‫alors le résultat ici devrait être la distance.
‫Donc, en gros, notre rayon d'origine divisé par 3963. 2.
‫Bon, encore une fois, c'est le rayon de la Terre en miles.
‫D'accord, et sinon, nous supposerons alors qu'il
‫s'agit d'un kilomètre.
‫Et donc s'il s'agit de kilomètres, alors c'est la distance
‫divisée par 6 378. 1 kilomètre.
‫Très bien, encore une fois, ce genre de conversion folle ici
‫est nécessaire car normalement,
‫le rayon de notre sphère devrait être en radians.
‫Et les radians que nous obtenons en
‫divisant la distance par le rayon de la Terre.
‫Génial, nous sommes donc presque prêts à tester cela maintenant.
‫Ajoutons simplement la propriété results que nous avions l'habitude d'avoir.
‫Donc, avec le nombre de résultats
‫en gros, et puis
‫une autre chose très importante est que,
‫en fait, pour pouvoir faire des requêtes de base, nous
‫devons d'abord attribuer un index au champ
‫où se trouvent les données géospatiales que nous recherchons. stocké.
‫Donc, dans ce cas, nous devons ajouter un index pour démarrer l'emplacement.
‫Faisons-le donc ici dans le modèle de tournée.
‫Donc ici-bas, nous avons besoin d'un autre index.
‫Schéma de visite. indice.
‫Emplacement de départ, mais maintenant nous n'allons pas le définir sur un
‫ou moins un, car cette fois
‫c'est un index différent dont nous
‫avons besoin.
‫Ainsi, pour les données géospatiales, cet index doit être
‫un index de sphère 2D si les données décrivent des points réels
‫sur la Terre comme une sphère.
‫Ou à la place, nous pouvons également utiliser un index 2D
‫si nous utilisons uniquement des points fictifs sur un simple plan à deux dimensions.
‫Maintenant, dans ce cas bien sûr, nous parlons
‫de points réels à la surface
‫de la Terre, nous allons donc utiliser ici un indice de sphère 2D.
‫Donc une sphère 2D comme celle-ci.
‫D'accord, et donc nous disons essentiellement que
‫cet emplacement de départ ici devrait être indexé sur une sphère 2D.
‫Donc une sphère semblable à la Terre où se trouvent toutes nos données.
‫Super, et avec ça, nous
‫devrions maintenant être prêts à tester notre nouvelle route.
‫Bon, augmentons juste un peu ce rayon
‫ici de 400 milles, et voyons donc ce que nous obtenons.
‫Eh bien, nous obtenons cette erreur d'apparence étrange,
‫et je ne suis pas vraiment sûr de ce que c'est.
‫Et donc, jetons un coup d'œil.
‫Et c'est probablement quelque chose qui ne va pas ici avec
‫le rayon, mais en fait c'est le moment idéal pour tester notre débogueur.
‫Je vous ai donc montré cela il y
‫a longtemps, mais c'est un bon cas d'utilisation pour jeter
‫à nouveau un coup d'œil au débogueur.
‫Je pense donc que nous avons un script NPM
‫pour cela, il s'appelle debug.
‫Nous devons donc connaître ce processus, puis dire NPM run debug.
‫D'accord?
‫Cela devrait donc ouvrir cette belle fenêtre.
‫Et fermons tous ces fichiers ici.
‫D'accord, et nous sommes donc dans nos contrôleurs.
‫Contrôleur de tournée.
‫Et maintenant, fixons un point de rupture ici.
‫D'accord, car à ce stade, nous aurons
‫toutes nos variables définies, et nous
‫pourrons alors jeter un œil à leurs valeurs afin de voir ce qui se passe.
‫Alors bien sûr, nous aurions pu le faire
‫avec une simple console. log, mais dans
‫certaines situations où vous avez beaucoup de choses
‫en cours, et il est également agréable d'utiliser le débogueur.
‫Nous devons donc envoyer notre demande.
‫Et maintenant, nous sommes dans le débogueur à notre point d'arrêt.
‫Et donc à ce
‫stade, notre code s'est vraiment arrêté.
‫Et nous pouvons voir ici
‫qu'en fait toutes nos variables semblent être définies.
‫Jetons un coup d'œil à cela ici en local.
‫Donc on a une
‫distance, on a la latitude, la longitude, et aussi le rayon.
‫Alors continuons ici.
‫Nous sommes donc passés
‫directement à la ligne suivante car ce if ici n'est pas entré dans le bloc if.
‫Et maintenant, il exécute toutes ces fonctions.
‫Mais sortons-en en fait,
‫et maintenant nous obtenons des tournées indéfinies.
‫Donc, si nous continuons maintenant, nous
‫obtiendrons probablement à nouveau la même erreur, n'est-ce pas ?
‫Et donc en effet, nous le faisons.
‫Il doit donc y avoir quelque chose
‫ici dans cette ligne, disons, et en effet, je pense avoir trouvé l'erreur.
‫C'est donc ainsi que vous écrivez sphère.
‫Donc la sphère ressemble plus à ça, non ?
‫Donc j'espère et je crois qu'en fait c'était l'erreur.
‫Alors fermons en fait le débogueur ici, et
‫soulageons-nous, et en fait, cela devrait mettre à
‫jour mon code ici.
‫Voyons voir, et en fait non.
‫Je ne sais pas pourquoi, mais d'accord.
‫Reprenons ceci ici.
‫Pas cette commande, d'accord
‫de toute façon, commençons simplement NPM.
‫Fermez tout cela.
‫Et maintenant réessayez.
‫Ah, et maintenant nous obtenons de vrais résultats ici, sympa.
‫Donc, cela me dit que ces visites ici sont dans
‫cette distance de 400 milles qui est spécifiée.
‫Mais comment pouvons-nous vraiment savoir que c'est vrai ?
‫Eh bien, en fait, nous pouvons utiliser une boussole pour cela.
‫Donc, si nous ouvrons la boussole ici, nous avons quelque chose de
‫vraiment sympa qui est ce schéma.
‫Alors faisons-le ici dans les visites.
‫Et donc nous pouvons maintenant venir au schéma ici
‫et ensuite analyser ce schéma.
‫Alors analysez le schéma, et maintenant nous avons ici
‫un bon résumé pour tous nos champs.
‫Par exemple
‫vous voyez que la difficulté est
‫facile dans 50% des documents, moyenne dans 30%, et difficile dans 20%.
‫Vous voyez également ces durées.
‫Donc, dans 20%, c'est cinq, et neuf est également plus populaire que
‫les autres durées.
‫Maintenant, ce qui m'intéresse vraiment ici, ce sont les emplacements.
‫Ou en fait les emplacements de départ, c'est donc ici.
‫Et maintenant, normalement, vous verriez une carte ici.
‫Mais pour le moment, il n'y a pas de carte
‫car nous avons un document qui n'a pas de lieu de départ.
‫Donc, pour que cela
‫fonctionne correctement, nous devons nous débarrasser de ce document.
‫C'était donc l'un de ces documents de
‫test que nous avons créés, mais dont nous n'avons plus besoin maintenant.
‫Alors laissez-moi voir si cela apparaît ici.
‫C'est peut-être à la fin.
‫Alors oui, c'est cette nouvelle tournée d'essai.
‫Débarrassons-nous de ça.
‫Revenons à notre schéma, analysons-le à nouveau.
‫D'accord, nous avons donc ici les applications vedettes.
‫Et là, vous voyez déjà la carte, alors c'est super, non ?
‫C'est vraiment une fonctionnalité très pratique.
‫Nous devrions donc avoir neuf points ici.
‫Donc un, deux, trois, quatre, cinq, six, sept, huit,
‫un ici, le neuvième.
‫Donc probablement celui-ci est de voir les aurores boréales.
‫Droit?
‫Et maintenant, ici, nous pouvons réellement répliquer cette requête à
‫l'aide de cette interface graphique.
‫Venons-en donc à Los Angeles et approximativement au
‫point où nous en étions.
‫Alors disons ici, et je dézoome un peu juste
‫pour donner un peu plus
‫d'espace, mais maintenant nous pouvons appuyer sur Maj, puis faire glisser.
‫Donc, comme il est dit ici.
‫Alors mettez la main là où se trouvait notre point
‫de vue, donc quelque part ici à Los Angeles.
‫Maintenant, déplacez, puis faites glisser, maintenant tout va bien.
‫Et donc vous pouvez voir qu'au fur et à
‫mesure que nous commençons à augmenter cette sphère, nous nous rapprochons
‫de plus en plus de certains de ces points qui virent au jaune, d'accord ?
‫Et je croyais que notre rayon était quelque chose comme 0. 1, ou
‫quelque chose comme ça, disons.
‫Et donc vous voyez qu'en fait trois documents,
‫donc trois tournées dans cette sphère que nous
‫venons de créer, d'accord ?
‫On a donc cette sphère de rayon 0. 1, comme vous pouvez
‫le voir ici.
‫Et donc en fait, cette requête ressemble à celle
‫que nous venons de remplir avec du code dans notre fonction de contrôleur,
‫n'est-ce pas ?
‫Nous obtenons donc ces trois documents qui sont marqués en
‫orange, alors allons maintenant appuyer à nouveau sur analyser ici, et
‫notre requête a donc renvoyé trois documents.
‫Voyons donc les noms en fait.
‫Alors où est-ce ?
‫Pour l'amateur de sport, le dégustateur de vins
‫et le campeur du parc.
‫Et les trois tournées que nous avons
‫eues dans Postman, donc pour l'API, devraient être exactement les mêmes.
‫Donc l'amateur de sport, le dégustateur de vin et le campeur du parc.
‫Donc campeur de parc, alors vous avez, l'amateur de sport,
‫et le dernier
‫à retenir devrait être le dégustateur de vin,
‫et c'est effectivement le cas.
‫Super, c'est vraiment fantastique.
‫Réduisons maintenant cela à 200, voyons combien de
‫résultats vous obtenez alors, et en
‫fait ce n'est qu'un.
‫Revenons donc à la boussole ici.
‫Supprimons cette requête ici.
‫Alors si nous revenons à tous nos documents,
‫jetez un œil à notre carte.
‫Et donc voici LA, d'accord.
‫C'est un autre rayon qui devrait être quelque chose comme 0. 05.
‫Maintenant quelque chose comme ça, disons, et
‫donc en effet nous n'avons qu'une seule visite qui,
‫je crois, est le dégustateur de vin ou quelque chose du genre.
‫Oui, nous devons analyser cela.
‫Alors oh, en fait c'est l'amateur de sport.
‫Et donc voyons si c'est ce que nous avons ici.
‫Et en effet, il l'est.
‫C'est donc l'amateur de sport, et c'est
‫donc la seule tournée qui se trouve à moins de 200 miles de Los Angeles.
‫Fantastique.
‫Alors ça, je trouve ça vraiment vraiment excitant, vraiment cool.
‫Permettez-moi de vous montrer une autre chose
‫très rapidement, afin que vous puissiez également voir tous nos emplacements sur la carte.
‫C'est donc ici.
‫Et ce sont donc les emplacements
‫de toutes les tournées, donc celles qui sont stockées dans l'emplacement.
‫Nous avons donc les coordonnées, et nous avons aussi
‫les jours, les descriptions et l'heure, d'accord ?
‫Et bien sûr, notre question ne concerne pas tout cela ici.
‫Pour cette requête, nous nous
‫soucions vraiment des emplacements des étoiles, mais je voulais
‫toujours vous montrer cette carte où nous pouvons également voir tous les emplacements.
‫D'accord, il y a donc vraiment un énorme potentiel pour
‫l'utilisation de données géospatiales avec MongoDB.
‫Les possibilités sont vraiment infinies pour faire des
‫requêtes géospatiales comme celle-ci.
‫Et je voulais en fait
‫vous montrer si nous avons d'autres opérateurs géospatiaux dans MongoDB.
‫Jetons donc un coup d'œil à la documentation ici à nouveau.
‫Revenons donc ici à
‫la référence et aux opérateurs, et aux opérateurs de requête.
‫Et je pense que c'est quelque part ici, ouais.
‫Nous avons donc ici l'opérateur géospatial.
‫Et vous voyez que c'est celui que nous avons
‫utilisé, donc celui qui sélectionne les
‫géométries dans une géométrie adjacente géographique englobante.
‫Cela semble un peu étrange, mais cette géométrie géo
‫adjacente délimitée est cette sphère que nous avons définie dans
‫notre code, n'est-ce pas ?
‫Maintenant, nous aurions également pu utiliser le snear ici,
‫jetons un coup d'œil à cela.
‫Et donc ça aurait l'air un peu différent.
‫Donc, dans ce cas, nous définirions le point en
‫utilisant la longitude et la latitude que nous avons
‫obtenues, puis nous spécifierions la distance
‫maximale ici en mètres.
‫Et puis dans ce cas, nous
‫n'avons pas eu besoin de faire la conversion en radians.
‫D'accord, ce qui est aussi bien
‫avec celui-ci, c'est que nous pouvons spécifier une distance minimale.
‫Et donc avec cela, nous pourrions par exemple
‫exclure les circuits qui ne sont qu'à 80 km de notre point de
‫départ, d'accord ?
‫Donc, si un jour vous avez besoin
‫de quelque chose comme ça, vous pouvez toujours utiliser le nouvel opérateur ici aussi.
‫D'accord génial.
‫Donc, avec cette requête géospatiale que nous venons
‫de définir ici, nous avons essentiellement trouvé des documents situés
‫à une certaine distance de notre point de départ.
‫Mais que se passe-t-il si nous voulions en fait
‫connaître les distances exactes de tous les circuits jusqu'à ce point de départ ?
‫Eh bien, c'est exactement ce que nous allons calculer
‫dans la prochaine leçon.