﻿1
00:00:01,110 --> 00:00:02,900
‫Insegnante: Quindi ricorda come

2
00:00:02,900 --> 00:00:05,510
‫nel video sul nostro modello di dati, abbiamo

3
00:00:05,510 --> 00:00:07,880
‫detto che potevamo incorporare o fare riferimento

4
00:00:07,880 --> 00:00:10,204
‫ai dati della guida turistica, quindi

5
00:00:10,204 --> 00:00:13,340
‫in questo video ti mostrerò come possiamo implementare l'incorporamento di

6
00:00:13,340 --> 00:00:16,393
‫documenti della guida turistica in un documento del tour.

7
00:00:17,930 --> 00:00:20,320
‫Quindi di nuovo, in questa lezione incorporeremo

8
00:00:20,320 --> 00:00:23,700
‫i documenti degli utenti nei documenti del tour, e poi

9
00:00:23,700 --> 00:00:25,840
‫nel prossimo video, ti

10
00:00:25,840 --> 00:00:28,030
‫mostrerò come possiamo effettivamente fare riferimento

11
00:00:28,030 --> 00:00:30,610
‫agli utenti invece di incorporarli, va bene?

12
00:00:30,610 --> 00:00:33,020
‫Quindi l'idea qui è che durante la

13
00:00:33,020 --> 00:00:35,730
‫creazione di un nuovo documento del tour, l'utente

14
00:00:35,730 --> 00:00:38,630
‫aggiungerà semplicemente una serie di ID utente, quindi otterremo

15
00:00:38,630 --> 00:00:41,020
‫i documenti utente corrispondenti basati su questi

16
00:00:41,020 --> 00:00:42,827
‫ID e li aggiungeremo

17
00:00:42,827 --> 00:00:44,800
‫ai nostri documenti del tour.

18
00:00:44,800 --> 00:00:48,813
‫Quindi, in altre parole, li inseriamo nel nostro tour, ok?

19
00:00:50,903 --> 00:00:52,323
‫Quindi, facciamolo qui ora.

20
00:00:55,430 --> 00:00:59,220
‫Quindi le guide saranno del tipo array, ok?

21
00:00:59,220 --> 00:01:01,700
‫Molto semplice, e in realtà prima di implementare

22
00:01:01,700 --> 00:01:04,080
‫qualsiasi codice, lascia che ti mostri come

23
00:01:04,080 --> 00:01:06,943
‫esempio come funzionerebbe durante la creazione di un nuovo tour.

24
00:01:08,680 --> 00:01:11,360
‫Quindi, torniamo a Postman

25
00:01:11,360 --> 00:01:14,523
‫qui e creiamo un nuovo tour,

26
00:01:16,270 --> 00:01:18,330
‫ok, quindi qui

27
00:01:18,330 --> 00:01:23,113
‫nel nostro corpo ovviamente aggiungeremmo ora le guide, le

28
00:01:24,410 --> 00:01:29,400
‫citazioni e quindi specificare una serie di ID, ok?

29
00:01:29,400 --> 00:01:31,113
‫Quindi, prendiamo alcuni ID utente.

30
00:01:32,610 --> 00:01:36,070
‫Quindi, prendi tutti gli utenti, vediamo cosa abbiamo qui.

31
00:01:36,070 --> 00:01:38,070
‫Quindi abbiamo una guida qui, in

32
00:01:38,070 --> 00:01:39,620
‫realtà, e quindi prendiamo

33
00:01:40,460 --> 00:01:42,060
‫questo ID insieme alle virgolette,

34
00:01:46,370 --> 00:01:47,893
‫in realtà, quindi

35
00:01:49,410 --> 00:01:51,163
‫mettiamolo qui e aggiungiamone altri.

36
00:01:52,900 --> 00:01:57,100
‫Quindi, anche questo qui e in realtà solo questi due.

37
00:01:57,100 --> 00:02:02,100
‫Dovrebbe essere sufficiente per testare questa roba, ok, quindi è così che

38
00:02:02,410 --> 00:02:04,100
‫creeremo un nuovo tour

39
00:02:04,100 --> 00:02:07,490
‫con due guide, ok, e di nuovo una

40
00:02:07,490 --> 00:02:10,440
‫volta salvato questo tour, allora, dietro

41
00:02:10,440 --> 00:02:11,840
‫le quinte,

42
00:02:11,840 --> 00:02:13,472
‫recupereremo il due

43
00:02:13,472 --> 00:02:17,270
‫documenti utente corrispondenti a questi due ID, va bene?

44
00:02:17,270 --> 00:02:19,263
‫Quindi, implementiamolo e nel

45
00:02:20,440 --> 00:02:21,930
‫nostro modello

46
00:02:21,930 --> 00:02:23,960
‫il posto migliore per farlo

47
00:02:23,960 --> 00:02:26,283
‫è un middleware pre-salvato, giusto?

48
00:02:27,280 --> 00:02:29,980
‫Quindi, ciò accadrà automaticamente dietro le quinte,

49
00:02:29,980 --> 00:02:31,550
‫in pratica, ogni

50
00:02:31,550 --> 00:02:34,730
‫volta che viene salvato un nuovo tour, e in

51
00:02:34,730 --> 00:02:36,780
‫realtà non voglio farlo qui.

52
00:02:37,620 --> 00:02:39,250
‫Quindi abbiamo una query,

53
00:02:39,250 --> 00:02:40,920
‫qui, ecco il documento "Middleware",

54
00:02:40,920 --> 00:02:42,203
‫quindi facciamolo qui.

55
00:02:43,320 --> 00:02:45,103
‫Quindi tourSchema. pre,

56
00:02:53,580 --> 00:02:57,370
‫va bene, chiamiamo subito dopo qui, così non

57
00:02:57,370 --> 00:02:59,600
‫lo dimentichiamo alla fine.

58
00:02:59,600 --> 00:03:04,600
‫Ok, allora abbiamo questo. guide come input e ricorda che questo

59
00:03:05,220 --> 00:03:07,360
‫sarà un array di tutti gli

60
00:03:07,360 --> 00:03:10,330
‫ID utente, giusto, quindi li esamineremo in sequenza usando

61
00:03:10,330 --> 00:03:13,290
‫un file . map, e

62
00:03:13,290 --> 00:03:15,480
‫poi in ogni iterazione

63
00:03:15,480 --> 00:03:18,373
‫ottieni il documento utente per

64
00:03:19,477 --> 00:03:24,477
‫l'ID corrente, ok, e lo memorizzeremo all'interno delle guide, ok?

65
00:03:26,460 --> 00:03:29,284
‫Quindi, l'elemento corrente, che sarà l'ID, in

66
00:03:29,284 --> 00:03:30,840
‫realtà chiamiamolo ID

67
00:03:30,840 --> 00:03:32,960
‫per renderlo un po' più facile

68
00:03:32,960 --> 00:03:36,360
‫da capire, e quindi ora abbiamo effettivamente bisogno dell'utente,

69
00:03:36,360 --> 00:03:38,803
‫giusto, quindi andiamo avanti e importiamolo.

70
00:03:41,630 --> 00:03:43,143
‫Quindi, cost User,

71
00:03:45,490 --> 00:03:46,563
‫require, ed

72
00:03:48,000 --> 00:03:53,000
‫è effettivamente nella stessa cartella qui, va bene, quindi

73
00:03:55,759 --> 00:03:57,300
‫User. findByID

74
00:04:01,350 --> 00:04:03,730
‫con l'ID corrente, va bene?

75
00:04:03,730 --> 00:04:05,550
‫Ma ora, tieni presente che

76
00:04:05,550 --> 00:04:09,977
‫in realtà dobbiamo attendere questa promessa qui, giusto e quindi, quindi, la

77
00:04:09,977 --> 00:04:11,870
‫funzione deve essere contrassegnata come

78
00:04:11,870 --> 00:04:13,513
‫asincrona, ma ora abbiamo

79
00:04:15,540 --> 00:04:18,313
‫effettivamente un problema, va bene, perché il

80
00:04:18,313 --> 00:04:21,340
‫file . map assegnerà il

81
00:04:21,340 --> 00:04:24,550
‫risultato di ogni iterazione al nuovo elemento nell'array

82
00:04:24,550 --> 00:04:27,150
‫delle guide, ok, quindi ora abbiamo una

83
00:04:27,150 --> 00:04:29,100
‫funzione asincrona qui e,

84
00:04:29,100 --> 00:04:31,760
‫come sai, che restituisce una promessa, quindi

85
00:04:31,760 --> 00:04:34,160
‫in questo momento questo array di

86
00:04:34,160 --> 00:04:38,120
‫guide qui è fondamentalmente una serie piena di promesse, ok.

87
00:04:38,120 --> 00:04:40,530
‫In realtà chiamiamo queste guidePromises e quindi

88
00:04:42,200 --> 00:04:44,160
‫ora abbiamo effettivamente bisogno

89
00:04:44,160 --> 00:04:47,240
‫di eseguire tutte queste promesse, fondamentalmente allo stesso tempo.

90
00:04:47,240 --> 00:04:49,520
‫Come ti ho mostrato un po' prima

91
00:04:49,520 --> 00:04:51,490
‫in questo codice, almeno se

92
00:04:51,490 --> 00:04:53,860
‫non hai saltato la sezione JavaScript asincrono,

93
00:04:53,860 --> 00:04:58,860
‫tutto ciò che dobbiamo fare è attendere Promise. all e poi guidePromise,

94
00:05:01,230 --> 00:05:03,450
‫okay, e possiamo assegnare

95
00:05:04,820 --> 00:05:07,670
‫direttamente il risultato di questo

96
00:05:07,670 --> 00:05:11,390
‫a questo. guide, e quindi in

97
00:05:11,390 --> 00:05:14,130
‫pratica sovrascrivere quella serie di ID del

98
00:05:14,130 --> 00:05:18,420
‫tempio con una serie di documenti utente, ok, e poiché

99
00:05:18,420 --> 00:05:20,000
‫ora stiamo usando

100
00:05:20,000 --> 00:05:23,860
‫wait qui, dobbiamo contrassegnare questa funzione come asincrona, ok?

101
00:05:23,860 --> 00:05:27,900
‫Salvalo e penso che sia davvero così, ok?

102
00:05:27,900 --> 00:05:31,460
‫Quindi, di nuovo, dobbiamo usare Promise. tutto qui perché

103
00:05:31,460 --> 00:05:35,298
‫il risultato di tutto questo qui è una promessa,

104
00:05:35,298 --> 00:05:38,410
‫okay, e quindi questo array qui sarà un

105
00:05:38,410 --> 00:05:40,483
‫array pieno di promesse che

106
00:05:40,483 --> 00:05:44,180
‫poi eseguiamo aspettando Promise. tutto ok?

107
00:05:44,180 --> 00:05:46,450
‫Quindi, testiamolo ora, e

108
00:05:46,450 --> 00:05:50,018
‫abbiamo già tutto questo codice pronto, dovremmo

109
00:05:50,018 --> 00:05:52,373
‫solo cambiare questo nome qui.

110
00:05:55,150 --> 00:05:58,560
‫Quindi, "Test Tour", ma gli ID sono già qui.

111
00:05:58,560 --> 00:06:01,760
‫Quindi inviamo questo e il nome del nostro tour deve essere

112
00:06:01,760 --> 00:06:05,167
‫più lungo, "New Task Tour". ' Va

113
00:06:06,050 --> 00:06:11,050
‫bene, ma ora diamo un'occhiata ai nostri risultati, e

114
00:06:11,240 --> 00:06:15,900
‫così effettivamente otteniamo le nostre guide qui, ok?

115
00:06:15,900 --> 00:06:18,580
‫Quindi questi sono i documenti

116
00:06:18,580 --> 00:06:22,170
‫completi, e in effetti non solo gli ID, giusto?

117
00:06:22,170 --> 00:06:24,198
‫Ottimo, ecco come

118
00:06:24,198 --> 00:06:28,440
‫potremmo implementare l'incorporamento per questo esempio di guide turistiche.

119
00:06:28,440 --> 00:06:30,840
‫Ora, questo semplice codice che abbiamo implementato

120
00:06:30,840 --> 00:06:33,850
‫qui ovviamente funziona solo per creare nuovi documenti,

121
00:06:33,850 --> 00:06:35,820
‫non per aggiornarli, giusto?

122
00:06:35,820 --> 00:06:38,020
‫Quindi ora dovremmo andare

123
00:06:38,020 --> 00:06:42,350
‫avanti e implementare questa stessa logica anche per gli aggiornamenti.

124
00:06:42,350 --> 00:06:44,540
‫Tuttavia, non lo farò perché, ricorda

125
00:06:44,540 --> 00:06:47,530
‫dal video in cui abbiamo modellato i nostri

126
00:06:47,530 --> 00:06:49,450
‫dati, che in questo

127
00:06:49,450 --> 00:06:52,090
‫caso ci sono alcuni svantaggi nell'incorporare questi dati.

128
00:06:52,090 --> 00:06:54,350
‫Ad esempio, immagina che una guida turistica

129
00:06:54,350 --> 00:06:56,770
‫aggiorni il suo indirizzo e-mail o che cambi

130
00:06:56,770 --> 00:06:59,250
‫il suo ruolo da guida a guida principale.

131
00:06:59,250 --> 00:07:02,020
‫Ogni volta che si verifica uno di questi cambiamenti,

132
00:07:02,020 --> 00:07:04,130
‫dovresti controllare se un tour ha

133
00:07:04,130 --> 00:07:06,610
‫quell'utente come guida e, in tal caso, aggiornare

134
00:07:06,610 --> 00:07:08,670
‫anche il tour, quindi è davvero

135
00:07:08,670 --> 00:07:10,650
‫molto lavoro e non lo siamo

136
00:07:10,650 --> 00:07:11,640
‫andrò in

137
00:07:11,640 --> 00:07:13,085
‫quella direzione, va bene?

138
00:07:13,085 --> 00:07:15,530
‫Ora, volevo ancora mostrarti come funziona

139
00:07:15,530 --> 00:07:17,220
‫davvero l'incorporamento e

140
00:07:17,220 --> 00:07:19,520
‫come potremmo implementarlo in questa

141
00:07:19,520 --> 00:07:22,201
‫situazione perché credo davvero che sia molto

142
00:07:22,201 --> 00:07:24,551
‫importante che tu sappia ancora come

143
00:07:24,551 --> 00:07:26,340
‫fare tutto nel caso

144
00:07:26,340 --> 00:07:28,590
‫ne avessi bisogno nelle tue

145
00:07:28,590 --> 00:07:30,820
‫applicazioni, ok, ma in questa

146
00:07:30,820 --> 00:07:33,810
‫particolare situazione, invece di incorporare, utilizzeremo il riferimento,

147
00:07:33,810 --> 00:07:36,085
‫e ho parlato dei motivi

148
00:07:36,085 --> 00:07:38,400
‫per farlo in quel video, ok?

149
00:07:38,400 --> 00:07:40,930
‫Quindi, andiamo avanti e facciamolo bene

150
00:07:40,930 --> 00:07:42,803
‫nella prossima lezione.

