‫Istruttore: Quindi abbiamo
‫inserito gli utenti nei tour nell'ultimo
‫video e abbiamo anche parlato
‫degli svantaggi di tale approccio nella nostra situazione specifica.
‫E quindi in questo video colleghiamo
‫effettivamente tour e utenti non tramite incorporamento ma tramite un riferimento.
‫E
‫quindi, per iniziare, sbarazziamoci del codice che abbiamo scritto nell'ultima lezione.
‫Ok, quindi
‫questo qui, sostanzialmente responsabile dell'esecuzione dell'incorporamento.
‫E ora andiamo qui al nostro campo guide.
‫Va bene?
‫Quindi questa volta in
‫questo video, l'idea è che i tour e gli utenti rimarranno
‫sempre entità completamente separate nel nostro database.
‫Va bene?
‫Quindi tutto ciò che salviamo su un determinato documento
‫del tour sono gli ID degli utenti che sono le guide
‫turistiche per quel tour specifico.
‫Quindi, quando interroghiamo il
‫tour, vogliamo ottenere automaticamente l'accesso alle guide turistiche.
‫Ma ancora una volta, senza che
‫vengano effettivamente salvati nel documento del tour stesso.
‫E questo è esattamente il riferimento.
‫Proprio come abbiamo detto all'inizio di questa sezione.
‫Va bene?
‫E quindi lascia
‫che ora ti mostri come possiamo implementare la referenziazione usando Mongoose.
‫Va bene?
‫Quindi, qui nelle guide vorremo ora specificare un array.
‫Va bene?
‫Quindi, proprio come abbiamo fatto prima con le location.
‫E quindi questo significa
‫di nuovo che questi saranno alcuni sotto-documenti.
‫Quindi documenti incorporati.
‫Va bene?
‫E ora il tipo sarà
‫un nuovo tipo che non abbiamo mai visto prima.
‫E quella è mangusta. Schema. ID oggetto
‫Va bene?
‫E ciò significa che ci aspettiamo
‫che un tipo di
‫ciascuno degli elementi nell'array delle guide sia un ID MongoDB.
‫Va bene?
‫E qui in realtà deve essere una O
‫maiuscola, ok, altrimenti non funzionerà,
‫e anche tutto questo qui deve essere all'interno di un oggetto, proprio
‫come qualsiasi altra definizione di tipo di schema.
‫Ok, perché questo è davvero tutto.
‫Ok, quindi il tipo è di questo ID MongoDB, in pratica, e
‫quindi ora dobbiamo anche specificare il riferimento.
‫Ed è qui che avviene la magia
‫dietro le quinte, perché qui, ora diciamo che il riferimento dovrebbe essere l'utente.
‫Ok, quindi è davvero così che stabiliamo i riferimenti tra
‫i diversi set di dati in Mongoose.
‫E per questo in realtà
‫non abbiamo nemmeno bisogno di importare l'utente in questo documento.
‫Quindi in realtà l'abbiamo avuto qui, ma non ne abbiamo nemmeno bisogno.
‫L'abbiamo tenuto qui per la
‫lezione precedente, ma possiamo
‫commentarlo, perché quello che abbiamo appena fatto qui funzionerà ancora.
‫Va bene?
‫Quindi, ora andiamo avanti e creiamo un nuovo tour, e
‫in realtà lo farò proprio come facevamo prima.
‫Quindi andiamo avanti ed eliminiamo questo.
‫Dov'è l'ID?
‫Eccoci qui.
‫Quindi elimina il tour.
‫Quindi possiamo già usare la nostra API per quello.
‫Va bene, e ora creiamo un nuovo tour.
‫E così, proprio
‫come prima, tutto ciò che passiamo alle guide è una serie di ID.
‫Va bene?
‫Ma questa volta abbiamo
‫effettivamente specificato che un ID oggetto è esattamente quello che ci aspettiamo.
‫Destra?
‫Quindi, questo qui è del tipo ID oggetto.
‫Ma dietro le quinte si fa anche riferimento all'utente.
‫Va bene?
‫Quindi, quando ora creiamo questo tour
‫qui, in realtà conterrà solo
‫questi ID e non l'utente corrispondente agli ID.
‫Quindi diamo un'occhiata a questo.
‫E quindi sì, ci siamo.
‫Quindi questi sono esattamente i dati che abbiamo inserito.
‫Solo gli ID delle guide turistiche.
‫Ok, ed è esattamente quello che ci aspettavamo.
‫Perché per ora, tutto ciò che abbiamo
‫sono i riferimenti all'interno di Mongoose.
‫E poi ci occuperemo di ottenere effettivamente
‫i dati da mostrare nel nostro output nel prossimo video.
‫Ok, perché lo faremo in due modi diversi.
‫Diamo anche un'occhiata qui a Compass
‫molto velocemente, solo per vedere anche quello dov'è, sì, qui.
‫Quindi vedi effettivamente l'ID oggetto e
‫poi, naturalmente, gli ID che abbiamo passato.
‫Quindi proprio come ci aspettavamo con tour e
‫utenti, ancora due entità completamente diverse.
‫E come dicevo prima, nel prossimo
‫video, ci occuperemo poi di visualizzare effettivamente
‫i dati dell'utente
‫in output, utilizzando un processo chiamato popolamento.