‫Istruttore: In questa lezione,
‫impareremo a conoscere le query geospaziali al fine di implementare
‫una funzionalità davvero interessante, che consiste
‫nel fornire una funzionalità di ricerca per i tour entro
‫una certa distanza da un punto specificato.
‫Quindi supponiamo che
‫tu viva in un certo punto e volevi sapere
‫quali tour iniziano a una certa distanza da te, come
‫250 miglia, perché non vuoi guidare oltre
‫per iniziare la tua esperienza di tour.
‫Quindi sarebbe una caratteristica fantastica
‫e un caso d'uso davvero carino di query geospaziali.
‫E per implementare qualcosa del genere, qui
‫nel nostro router tour, potremmo creare un bel
‫percorso, qualcosa del genere.
‫Quindi lo metterò qui prima di queste rotte generali
‫qui.
‫Quindi diciamo router dot route, e
‫chiamerò questo tour all'interno, ok?
‫Quindi dobbiamo anche specificare la distanza.
‫E quindi creiamo qui un parametro di distanza.
‫Successivamente, dobbiamo anche specificare il centro,
‫e questo è fondamentalmente il punto in cui vivi.
‫Quindi specifichiamolo intorno al centro e poi barra, e
‫poi lat e longitudine.
‫Quindi fondamentalmente in questa variabile qui,
‫vuoi passare le coordinate del luogo in cui
‫ti trovi.
‫Quindi diciamo che vivi a Los
‫Angeles e vuoi trovare tutti i tour entro una
‫distanza di 300 miglia.
‫Quindi qui diresti
‫300, e poi qui metteresti
‫le coordinate di dove vivi, ok?
‫Quindi, diamo anche la possibilità di specificare
‫l'unità.
‫Quindi se questa distanza qui è in chilometri o in miglia.
‫Quindi diciamo, slash
‫unit e l'unità come parametro.
‫Ora questo modo di specificare un URL è qualcosa che non
‫abbiamo mai fatto prima.
‫Quindi fondamentalmente dicendo qui centro e barra
‫e mettendo la longitudine e la
‫latitudine dopo, e poi
‫barra l'unità, e poi il parametro delle query.
‫E ovviamente potremmo
‫anche fare in modo che l'utente debba specificare
‫tutte queste opzioni usando una stringa di query, ma in
‫questo modo sembra molto più pulito ed è anche una specie di modo standard per
‫specificare gli URL che contengono molti oggetti.
‫Quindi quello che stavo dicendo che invece potremmo
‫farlo ovviamente così.
‫Distanza del tour e quindi l'utente dovrebbe fornire la distanza
‫in questo modo qui.
‫E il centro in questo modo, diciamo
‫meno 40 e 45, e poi anche l'unità viene impostata su miglia.
‫Ok, quindi questo è stato un modo per utilizzare le
‫stringhe di query e l'abbiamo fatto prima.
‫E in realtà non così, ma così.
‫Ok, ma invece lo specificheremo di
‫nuovo in questo modo.
‫Che a mio parere sembra molto più bello.
‫Quindi meno 40, 45.
‫Ok, quindi pensa che questo
‫qui sembri davvero molto più pulito di questo.
‫Ok, quindi questa è un'altra cosa che
‫volevo mostrarti è che
‫è una specie di standard per specificare URL come questo, ok?
‫Ad ogni
‫modo, per questa rotta ovviamente, abbiamo bisogno di
‫un gestore di rotta, e sarà
‫al controller del tour, e chiamiamo questa funzione del gestore ottenere i tour all'interno.
‫E quindi ora andiamo avanti e implementiamo questo
‫metodo su questo gestore.
‫Quindi tour controller e proprio qui.
‫E iniziamo ottenendo tutti i parametri.
‫Quindi lasciami copiare tutto questo qui.
‫E solo così sappiamo come sono i nostri dati.
‫Va bene?
‫Quindi questo, e poi questo ha un commento.
‫Va bene, quindi usiamo una semplice ristrutturazione per ottenere tutti
‫i nostri dati in una volta dai parametri.
‫E in realtà
‫dobbiamo dire const, distanza e unità.
‫Quindi tutto ciò deriva dai parametri dei punti di richiesta.
‫Ok, quindi su richiesta. parametri, abbiamo la distanza del
‫punto, il centro del punto e l'unità del punto, giusto?
‫Perché questi sono i nomi
‫dei tre parametri che abbiamo specificato qui.
‫E in
‫realtà non è al centro, è latlng
‫qui, ok, quindi è quello corretto, e infine l'unità.
‫Quindi, ancora una volta, usiamo la ristrutturazione per ottenere
‫tutte queste variabili contemporaneamente.
‫Successivamente, otteniamo effettivamente tutte le coordinate
‫da questa variabile di latitudine e longitudine qui.
‫Quindi, come vediamo, ci aspettiamo i dati in un formato come
‫questo, e questo rende davvero facile copiare questi
‫dati da Google Maps.
‫Quindi lascia che te lo mostri velocemente.
‫È importante che tu capisca come funziona anche
‫questo tipo di cose nella pratica.
‫Quindi usiamo l'esempio di Los Angeles qui.
‫Ok, quindi diciamo che vivi da qualche parte qui.
‫Ok, quindi puoi facilmente ottenere la latitudine e la
‫longitudine in questo modo, ok?
‫Quindi mettilo qui, solo come esempio di nuovo.
‫E quindi questo è il formato.
‫Sembra latitudine e longitudine.
‫E quindi creiamo ora una variabile per ciascuna di esse.
‫Quindi uno per la latitudine e uno per la longitudine.
‫Quindi lat longitudine dot split perché è una
‫stringa e vogliamo dividerla per virgola.
‫Quindi questo creerà un array di
‫due elementi, e ora possiamo usare di nuovo il destructering
‫per salvarli nelle due variabili che ci interessano.
‫Quindi latitudine e longitudine.
‫Ok, ora voglio verificare se abbiamo effettivamente le variabili
‫di longitudine e latitudine da trovare.
‫Perché in caso contrario, significa che l'utente non li
‫ha specificati nel formato richiesto.
‫Quindi diciamo che se
‫non c'è latitudine o longitudine, allora vogliamo creare un nuovo errore.
‫Quindi, come sempre, errore della nuova app, e non sono sicuro che ce
‫l'abbiamo ancora, proprio qui, e in realtà non
‫ce l'abbiamo.
‫Quindi abbiamo commentato questa parte perché non avevamo più bisogno
‫dell'errore dell'app dopo aver creato le nostre funzioni di
‫fabbrica del gestore, ma ora ne abbiamo effettivamente bisogno di
‫nuovo, quindi riportiamolo.
‫E il messaggio qui
‫sarà per favore fornisci, nel formato, come questo.
‫E il codice di errore 400 per quella richiesta.
‫Fantastico, e ora solo per vedere se
‫tutto
‫questo funziona correttamente, disconnettiamoci dalla console.
‫La distanza che longitudine e unità.
‫E inviamo anche qui un messaggio generico, giusto
‫per finire davvero il ciclo di richiesta di risposta.
‫E per questo ovviamente è lo stesso di sempre.
‫Quindi per ora lo stato è successo e, naturalmente,
‫in seguito invieremo i dati restituiti dalla query.
‫Quindi, in realtà, copiamo questo qui.
‫Perché questo è già quello che vogliamo.
‫Quindi, tornati a Postman, chiudiamo tutto questo.
‫Questo non ci serve più.
‫Va bene, non abbiamo nemmeno bisogno di essere
‫registrati e non vogliamo nemmeno aggiornamenti.
‫Comunque, dobbiamo anche ottenere questa parte che sono
‫troppo pigro per scrivere.
‫E quindi testiamolo ora.
‫E questo non ha
‫funzionato, e penso che questo l'abbiamo chiamato tour in realtà.
‫Abbiamo?
‫Quindi tour all'interno.
‫Quindi non sono sicuro del motivo per
‫cui ho scritto la distanza qui, risolviamolo rapidamente qui nei nostri esempi.
‫E quindi, ovviamente, sono i tour all'interno.
‫E questo non funziona ancora, quindi diamo un'occhiata e l'implementazione del
‫percorso qui in realtà.
‫Quindi qui abbiamo questo, e
‫sì, naturalmente, questo non è affatto corretto.
‫Quindi questo qui non dovrebbe essere all'interno del percorso del punto, ovviamente.
‫Ma invece, dovrebbe essere nel metodo get.
‫E quindi ora assomiglia molto di più a quello
‫che abbiamo qui.
‫Quindi dot route e poi dot get.
‫Quindi un tentativo in meno e questa volta ha funzionato.
‫E diamo un'occhiata alla
‫console, e infatti, qui otteniamo la
‫distanza che è specificata dalla latitudine alla longitudine e l'unità.
‫Ottimo, quindi ora è il momento di
‫scrivere effettivamente la query stessa.
‫Ora una query geospaziale funziona in
‫modo abbastanza simile a una normale query.
‫Quindi scriveremo ancora che tour è uguale a tour. trovare, e, naturalmente,
‫in attesa del risultato di questa promessa.
‫E poi il vecchio gioco di contrassegnare tutto
‫come asincrono e poi catturare l'asincrono e racchiudere la nostra funzione lì
‫dentro.
‫Quindi abbiamo tutti i
‫tour qui inutilizzati, quindi andiamo avanti e modifichiamo
‫subito l'oggetto risposta.
‫Quindi dati, e ora ricorda come li abbiamo chiamati dati.
‫E poi tour.
‫Ok, e tutto ciò che dobbiamo fare è
‫specificare o filtrare l'oggetto qui.
‫Quindi ricorda che vogliamo fondamentalmente eseguire
‫una query per la posizione di partenza,
‫perché il campo della posizione di partenza
‫è ciò che contiene il punto geospaziale in cui inizia ogni tour.
‫E quindi è esattamente quello che stiamo cercando.
‫Quindi, inizia la posizione e ora dobbiamo specificare
‫il valore che stiamo cercando.
‫E per questo, ora useremo un operatore
‫geospaziale chiamato geo inside.
‫Come sempre, dobbiamo specificare
‫l'oggetto, e poi qui, dove prima
‫avremmo usato come un operatore matematico come
‫maggiore di, questa volta usiamo un operatore geospaziale come questo.
‫Geo inside, e questo operatore fa esattamente quello che dice.
‫Fondamentalmente trova documenti all'interno di una certa geometria.
‫E quella geometria è ciò che dobbiamo definire come prossimo passo.
‫Quindi vogliamo trovare
‫documenti, ma dove vogliamo effettivamente trovare questi documenti?
‫Bene, vogliamo trovarli all'interno di una sfera che
‫inizia in questo punto che abbiamo definito
‫e che ha un raggio della distanza che abbiamo definito.
‫Quindi di nuovo con il nostro esempio a
‫Los Angeles, se specifichi
‫la distanza di 250 miglia, significa che vuoi trovare tutti
‫i documenti del tour all'interno di una sfera che ha un raggio di 250 miglia.
‫Ok, ha senso?
‫E quindi ora dobbiamo
‫passare le informazioni qui nell'operatore geo all'interno, ok?
‫E lo facciamo definendo una sfera centrale.
‫Ok, e di nuovo, so che sembra
‫piuttosto confuso, ma è per questo che lo sto spiegando qui passo dopo passo.
‫E tra un
‫secondo, daremo un'occhiata alla documentazione.
‫Quindi l'operatore della sfera
‫centrale prende un array delle coordinate e del raggio.
‫E formattiamo il codice qui almeno
‫per farlo sembrare un po' più semplice, ok?
‫Beh, sembra lo stesso, ma comunque è
‫così che trovi le coordinate qui.
‫E per questo, abbiamo bisogno di
‫un altro array, e poi della longitudine e della latitudine.
‫E questo è vero.
‫Devi prima definire sempre la
‫longitudine e poi la latitudine, il che è un
‫po' controintuitivo perché di solito le coppie di coordinate sono
‫sempre specificate con prima la latitudine e prima la longitudine.
‫Penso di averlo menzionato prima che
‫in geo adiacente, per qualche motivo funziona così.
‫Quindi quello è il centro della sfera.
‫Ora dobbiamo specificare il suo raggio.
‫Ora qui in realtà non passiamo in lontananza, ma
‫invece si aspetta un raggio in un'unità speciale
‫chiamata radianti.
‫Quindi fammi mettere la variabile del
‫raggio qui, e poi in un secondo lo definiremo.
‫Quindi ora definiamo effettivamente il raggio.
‫Quindi, di nuovo, il raggio è fondamentalmente
‫la distanza che vogliamo avere
‫come raggio, ma convertita in un'unità speciale chiamata radianti.
‫E per ottenere i radianti,
‫dobbiamo dividere la nostra distanza per il
‫raggio della terra.
‫Quindi sembra un po' folle, ma in realtà è così che funziona.
‫Ok, ora dobbiamo davvero prendere in considerazione
‫le nostre unità qui, perché ovviamente il raggio della
‫terra è diverso in miglia e poi in chilometri.
‫Quindi ora facciamo una svolta
‫di maggiore qui e diciamo che se l'unità è uguale a miglia,
‫allora il risultato qui dovrebbe essere la distanza.
‫Quindi in pratica il nostro raggio originale diviso per 3963. 2.
‫Ok, di nuovo, questo è il raggio della Terra in miglia.
‫Ok, altrimenti supporremo che sia
‫un chilometro.
‫E quindi se sono chilometri, allora è la distanza
‫divisa per 6.378. 1 chilometri.
‫Va bene, di nuovo, questo tipo di conversione folle qui è necessaria
‫perché normalmente si aspetterebbe
‫che il raggio della nostra sfera sia in radianti.
‫E i radianti che otteniamo dividendo
‫la distanza per il raggio della Terra.
‫Ottimo, quindi siamo quasi pronti per testarlo ora.
‫Aggiungiamo semplicemente la proprietà dei risultati che avevamo.
‫Quindi con il numero di risultati
‫fondamentalmente, e poi un'altra
‫cosa molto importante è che in realtà
‫per essere in grado di fare solo query di base,
‫dobbiamo prima attribuire un indice al campo
‫in cui i dati geospaziali che stiamo cercando sono immagazzinato.
‫Quindi in questo caso, dobbiamo aggiungere un indice per iniziare la posizione.
‫Quindi facciamolo qui nel modello del tour.
‫Quindi quaggiù, abbiamo bisogno di un altro indice.
‫Schema del giro. indice.
‫Posizione iniziale, ma ora in realtà non la imposteremo su uno o
‫meno uno, perché questa volta è
‫un indice diverso di cui
‫abbiamo bisogno.
‫Quindi, per i dati geospaziali, questo indice deve essere
‫un indice di sfera 2D se i dati descrivono punti reali
‫sulla Terra come una sfera.
‫O invece, possiamo anche usare un indice 2D se
‫stiamo usando solo punti immaginari su un semplice piano bidimensionale.
‫Ora, in questo caso, ovviamente, stiamo
‫parlando di punti reali
‫sulla superficie terrestre, quindi useremo un indice di sfera 2D qui.
‫Quindi una sfera 2D come questa.
‫Ok, quindi in pratica stiamo dicendo che
‫questa posizione iniziale qui dovrebbe essere indicizzata a una sfera 2D.
‫Quindi una sfera simile alla Terra dove si trovano tutti i nostri dati.
‫Fantastico, e con questo dovremmo
‫essere pronti per testare la nostra nuova via.
‫Ok, aumentiamo solo un po'
‫questo raggio qui di 400 miglia, quindi vediamo cosa otteniamo.
‫Bene, otteniamo questo errore dall'aspetto strano
‫e non sono davvero sicuro di cosa sia.
‫E così, diamo un'occhiata.
‫E probabilmente c'è qualcosa di sbagliato qui con il raggio,
‫ma in realtà questo è un ottimo momento per testare il nostro debugger.
‫Quindi te l'ho mostrato molto tempo fa,
‫ma questo è un buon caso d'uso per
‫dare nuovamente un'occhiata al debugger.
‫Quindi penso che abbiamo uno script NPM per
‫questo, si chiama debug.
‫Quindi dobbiamo conoscere questo processo e quindi dire che NPM esegue il debug.
‫Va bene?
‫Quindi questo dovrebbe aprire questa bella finestra.
‫E chiudiamo qui tutti questi file.
‫Ok, quindi siamo nei nostri controller.
‫Controllore del giro.
‫E quindi ora, impostiamo un punto di interruzione proprio qui.
‫Ok, perché a questo punto avremo
‫tutte le nostre variabili definite,
‫quindi possiamo dare un'occhiata ai loro valori per vedere cosa sta succedendo.
‫Quindi, ovviamente, avremmo potuto farlo con
‫una semplice console. log, ma in
‫alcune situazioni in cui si verificano
‫molte cose ed è anche utile utilizzare il debugger.
‫Quindi dobbiamo inviare la nostra richiesta.
‫E ora siamo nel debugger al nostro punto di interruzione.
‫E così, a questo punto,
‫il nostro codice si è davvero fermato.
‫E qui possiamo vedere che
‫in realtà tutte le nostre variabili sembrano essere definite.
‫Diamo un'occhiata a questo qui in locale.
‫Quindi abbiamo una distanza,
‫abbiamo la latitudine, la longitudine e anche il raggio.
‫Quindi continuiamo qui.
‫Quindi siamo passati direttamente
‫alla riga successiva perché questo if here non è entrato nel blocco if.
‫E quindi ora esegue tutte queste funzioni.
‫Ma in realtà usciamo da
‫loro, e ora otteniamo effettivamente tour indefiniti.
‫Quindi, se ora continuiamo così,
‫probabilmente otterremo di nuovo lo stesso errore, giusto?
‫E così in effetti, lo facciamo.
‫Quindi deve essere qualcosa qui
‫in questa riga, diciamo, e infatti, penso di aver trovato l'errore.
‫Quindi ora è così che scrivi sfera.
‫Quindi la sfera è più simile a questa, giusto?
‫Quindi spero e credo che in realtà questo sia stato l'errore.
‫Quindi chiudiamo effettivamente il debugger qui e
‫alleviamoci, e in realtà questo dovrebbe aggiornare il
‫mio codice qui.
‫Vediamo, e in realtà non è stato così.
‫Non sono sicuro del perché, ma va bene.
‫Eseguiamo questo di nuovo qui.
‫Non questo comando, va
‫bene comunque, avviamo solo NPM.
‫Chiudi tutto questo.
‫E ora riprova.
‫Ah, e ora otteniamo dei risultati reali qui, bello.
‫Quindi mi dice che questi tour qui sono in
‫quella distanza di 400 miglia che è specificata.
‫Ma come possiamo davvero sapere che è vero?
‫Beh, in realtà possiamo usare la bussola per questo.
‫Quindi se apriamo la bussola qui, abbiamo qualcosa di veramente
‫carino che è questo schema.
‫Quindi facciamolo qui nei tour.
‫E così ora possiamo venire qui allo schema e
‫poi analizzare questo schema.
‫Quindi analizza lo schema, e ora qui abbiamo un
‫bel riassunto per tutti i nostri campi.
‫Ad esempio,
‫vedi che la difficoltà è facile
‫nel 50% dei documenti, media nel 30% e difficile nel 20%.
‫Vedi anche queste durate.
‫Quindi nel 20% sono cinque, e anche nove è anche più popolare
‫delle altre durate.
‫Ora quello che mi interessa davvero qui sono le posizioni.
‫O in realtà le posizioni di partenza, quindi sono qui.
‫E ora normalmente, vedresti una mappa qui.
‫Ma in questo momento non c'è una mappa perché abbiamo
‫un documento in questo momento che non ha una posizione di partenza.
‫Quindi, affinché
‫funzioni correttamente, dobbiamo sbarazzarci di quel documento.
‫Quindi è stato uno di questi documenti di
‫prova che abbiamo creato, ma di cui ora in realtà non abbiamo più bisogno.
‫Quindi fammi vedere se viene visualizzato qui.
‫Forse è alla fine.
‫Quindi sì, è questo nuovo tour di prova.
‫Eliminiamolo.
‫Tornando al nostro schema, analizziamolo di nuovo.
‫Ok, quindi qui abbiamo le applicazioni stellari.
‫E qui vedi già la mappa, quindi è fantastico, giusto?
‫Questa è davvero una caratteristica utile.
‫Quindi dovremmo avere nove punti qui.
‫Quindi uno, due, tre, quattro, cinque, sei, sette, otto,
‫uno quassù, il nono.
‫Quindi probabilmente questo è per vedere l'aurora boreale.
‫Destra?
‫E ora qui possiamo effettivamente replicare quella query
‫usando questa interfaccia grafica.
‫Quindi veniamo a Los Angeles e approssimativamente al
‫punto in cui eravamo.
‫Quindi diciamo qui, e sto rimpicciolendo un po' solo
‫per dare un po' più
‫di spazio, ma ora possiamo premere MAIUSC e quindi trascinare.
‫Quindi proprio come dice quaggiù.
‫Quindi metti la mano dove era il nostro punto, quindi
‫praticamente da qualche parte qui a Los Angeles.
‫Ora sposta, quindi trascina, ora tutto a posto.
‫E così puoi vedere che quando iniziamo
‫ad aumentare questa sfera, ci avviciniamo sempre di
‫più ad alcuni di questi punti qui che diventano gialli, ok?
‫E credevo che il nostro raggio fosse qualcosa come 0. 1, o
‫qualcosa del genere, diciamo.
‫E quindi vedete che in realtà sono tre documenti,
‫quindi tre tour tutti all'interno di questa sfera
‫che abbiamo appena creato, ok?
‫Quindi abbiamo questa sfera con il raggio di 0. 1, come puoi
‫vedere qui.
‫E quindi in effetti questa query sembra
‫proprio quella che abbiamo appena riempito di codice nella nostra funzione
‫controller, giusto?
‫Quindi otteniamo questi tre documenti che sono contrassegnati come arancioni,
‫quindi ora premiamo di nuovo analizza qui, e quindi ora
‫la nostra query ha restituito tre documenti.
‫Quindi vediamo i nomi in realtà.
‫Allora dov'è?
‫Per lo sportivo, il degustatore
‫e il camperista.
‫E i tre tour che abbiamo fatto
‫a Postman, quindi per l'API, dovrebbero essere esattamente gli stessi tre.
‫Quindi l'amante dello sport, il degustatore di vino e il camperista.
‫Quindi parcheggia il camper, allora hai, l'amante dello sport,
‫e l'ultimo
‫che ricorda dovrebbe essere l'assaggiatore, e
‫in effetti lo è.
‫Fantastico, è davvero fantastico.
‫Ora riduciamo questo qui a 200, vediamo
‫quanti risultati ottieni poi, e in
‫effetti è solo uno.
‫Quindi torniamo alla bussola qui.
‫Cancelliamo questa query qui.
‫Quindi, se torniamo a tutti i nostri
‫documenti, dai un'occhiata alla nostra mappa.
‫E quindi ecco LA, ok.
‫È un altro raggio dovrebbe essere qualcosa come 0. 05.
‫Ora qualcosa del genere, diciamo, e
‫quindi in effetti abbiamo solo questo tour che
‫credo sia il degustatore di vino o qualcosa del genere.
‫Sì, dobbiamo analizzare questo.
‫Quindi oh, in realtà è l'amante dello sport.
‫E quindi vediamo se è quello che abbiamo qui.
‫E infatti lo è.
‫Quindi è l'amante dello sport, e quindi
‫questo è l'unico tour che si trova nel raggio di 200 miglia da Los Angeles.
‫Fantastico.
‫Quindi questo lo trovo davvero molto eccitante, davvero fantastico.
‫Lascia che ti mostri un'altra cosa
‫molto rapidamente, così puoi anche vedere tutte le nostre posizioni sulla mappa.
‫Quindi è qui.
‫E quindi queste sono le posizioni
‫di tutti i tour, quindi quelle che sono memorizzate nella posizione.
‫Quindi abbiamo le coordinate e abbiamo anche i
‫giorni, le descrizioni e l'ora, ok?
‫E ovviamente la nostra domanda non riguarda tutto questo qui.
‫Per quella query ci interessa
‫davvero solo la posizione delle stelle, ma volevo
‫comunque mostrarti questa mappa dove possiamo effettivamente vedere anche tutte le posizioni.
‫Ok, quindi c'è davvero un enorme potenziale per l'utilizzo
‫dei dati geospaziali con MongoDB.
‫Le possibilità sono davvero infinite per eseguire
‫query geospaziali come questa.
‫E in realtà volevo
‫mostrarti se abbiamo altri operatori geospaziali in MongoDB.
‫Quindi diamo un'occhiata alla documentazione qui di nuovo.
‫Quindi torniamo qui di nuovo
‫al riferimento e agli operatori e agli operatori di query.
‫E penso che sia da qualche parte quaggiù, sì.
‫Quindi qui abbiamo l'operatore geospaziale.
‫E vedete che questo è quello che abbiamo usato,
‫quindi quello che seleziona le geometrie
‫all'interno di una geometria geo-adiacente di delimitazione.
‫Sembra un po' strano, ma questa geometria
‫geo-adiacente delimitante è quella sfera che abbiamo definito
‫nel nostro codice, giusto?
‫Ora avremmo anche potuto usare lo snear qui,
‫diamo un'occhiata a questo.
‫E quindi sarebbe sembrato un po' diverso.
‫Quindi in questo caso, definiremmo il punto usando la
‫longitudine e la latitudine che abbiamo ottenuto, e
‫quindi dovremmo specificare la distanza
‫massima qui in metri.
‫E poi in questo caso, non
‫avevamo bisogno di fare la conversione in radianti.
‫Ok, la cosa bella di
‫questo è che possiamo specificare una distanza minima.
‫E quindi con questo, potremmo ad esempio
‫escludere i tour che distano solo 50 miglia dal nostro punto
‫di partenza, ok?
‫Quindi, se un giorno avrai bisogno
‫di qualcosa del genere, puoi sempre utilizzare anche il nuovo operatore qui.
‫Ok, fantastico.
‫Quindi, con questa query geospaziale che abbiamo
‫appena definito qui, abbiamo sostanzialmente trovato documenti che si trovano
‫entro una certa distanza dal nostro punto di partenza.
‫E se volessimo davvero conoscere le distanze
‫esatte di tutti i tour fino a quel punto di partenza?
‫Bene, questo è esattamente quello che calcoleremo
‫nella prossima lezione.