﻿1
00:00:01,130 --> 00:00:02,940
‫Istruttore: Quindi, ora che

2
00:00:02,940 --> 00:00:04,910
‫conosci le basi di Mongoose

3
00:00:04,910 --> 00:00:07,240
‫implementando tutte e quattro le operazioni

4
00:00:07,240 --> 00:00:11,440
‫corrette, è ora di importare un po' meglio i dati dei

5
00:00:11,440 --> 00:00:14,423
‫nostri tour per rendere i tour più completi.

6
00:00:15,990 --> 00:00:20,240
‫Quindi, a questo punto, i nostri documenti di viaggio possono avere solo un

7
00:00:20,240 --> 00:00:22,410
‫nome, una valutazione e un prezzo.

8
00:00:22,410 --> 00:00:25,060
‫Ma ovviamente, abbiamo bisogno di molti

9
00:00:25,060 --> 00:00:29,320
‫più dati qui, perché l'obiettivo è avere un'API ricca di

10
00:00:29,320 --> 00:00:30,940
‫dati, come questa.

11
00:00:30,940 --> 00:00:33,390
‫Quindi diamo un'occhiata alla versione finale

12
00:00:33,390 --> 00:00:35,453
‫in realtà qui come riferimento.

13
00:00:36,660 --> 00:00:39,010
‫E quindi questo è questo qui.

14
00:00:39,010 --> 00:00:41,230
‫E così avremo tutti i

15
00:00:41,230 --> 00:00:44,330
‫tour, e assomiglierà un po' a questo.

16
00:00:44,330 --> 00:00:46,620
‫Ok, quindi vedi che in ogni

17
00:00:46,620 --> 00:00:49,750
‫tour abbiamo una posizione di partenza, abbiamo una media delle

18
00:00:49,750 --> 00:00:52,543
‫valutazioni, una quantità di valutazioni, immagini, date di inizio.

19
00:00:53,410 --> 00:00:57,400
‫Guide, nome, durata, dimensione massima del gruppo, difficoltà,

20
00:00:57,400 --> 00:00:58,910
‫prezzo, riepilogo,

21
00:00:58,910 --> 00:01:01,323
‫descrizione, immagine di copertina, luoghi.

22
00:01:02,930 --> 00:01:07,930
‫Anche una lumaca, recensioni, durata in settimane e ID.

23
00:01:07,960 --> 00:01:10,070
‫Quindi vedete molti dati e

24
00:01:10,070 --> 00:01:12,860
‫non aggiungeremo tutti i dati in questa

25
00:01:12,860 --> 00:01:14,260
‫lezione qui.

26
00:01:14,260 --> 00:01:17,750
‫Ci sono alcuni pezzi che non possiamo

27
00:01:17,750 --> 00:01:22,330
‫ancora aggiungere, ma ovviamente possiamo renderlo un po' più completo, ok?

28
00:01:22,330 --> 00:01:27,193
‫E in realtà salviamo questo qui, come riferimento, e prendiamo

29
00:01:30,560 --> 00:01:33,550
‫tutti i tour, e lo metterò

30
00:01:34,630 --> 00:01:36,770
‫fuori da qualsiasi cartella.

31
00:01:36,770 --> 00:01:39,643
‫Quindi mettiamolo qui in alto.

32
00:01:40,810 --> 00:01:43,310
‫E questo non funziona per qualche motivo.

33
00:01:43,310 --> 00:01:45,060
‫Ok, mettiamolo qui, allora.

34
00:01:47,680 --> 00:01:50,903
‫Ok, andiamo, è

35
00:01:52,390 --> 00:01:53,550
‫corretto.

36
00:01:53,550 --> 00:01:55,570
‫E così di nuovo, lo lascio

37
00:01:55,570 --> 00:01:58,400
‫qui, per continuare a confrontare ciò che abbiamo

38
00:01:58,400 --> 00:02:00,330
‫con ciò a cui miriamo.

39
00:02:00,330 --> 00:02:02,870
‫Comunque, torniamo indietro, e iniziamo con

40
00:02:02,870 --> 00:02:05,250
‫quello che abbiamo già, e abbiamo

41
00:02:05,250 --> 00:02:06,560
‫il nome.

42
00:02:06,560 --> 00:02:08,520
‫E quindi è già abbastanza

43
00:02:08,520 --> 00:02:11,000
‫buono, quindi per ora lo lascerò così.

44
00:02:11,000 --> 00:02:16,000
‫Quindi il nome, poi vogliamo anche una durata.

45
00:02:19,780 --> 00:02:24,780
‫E quella durata è un numero, ed è richiesta.

46
00:02:26,570 --> 00:02:29,990
‫Quindi impostalo su true e quindi il

47
00:02:29,990 --> 00:02:33,603
‫messaggio è che un tour deve avere una durata.

48
00:02:35,100 --> 00:02:38,450
‫Quindi questi validatori obbligatori qui sono fondamentalmente gli

49
00:02:38,450 --> 00:02:40,870
‫unici validatori che aggiungerò a

50
00:02:40,870 --> 00:02:43,920
‫ciascuno di questi campi qui per ora.

51
00:02:43,920 --> 00:02:46,120
‫Più avanti, quando parleremo più

52
00:02:46,120 --> 00:02:48,790
‫in dettaglio dei validatori, aggiungeremo molto di più.

53
00:02:48,790 --> 00:02:50,700
‫Ma ancora una volta, per

54
00:02:50,700 --> 00:02:54,150
‫ora, voglio solo rendere obbligatori alcuni di questi campi, non tutti.

55
00:02:54,150 --> 00:02:56,110
‫Successivamente, abbiamo la dimensione del gruppo.

56
00:02:56,110 --> 00:02:58,640
‫Quindi, in pratica, quante persone possono prendere

57
00:02:58,640 --> 00:03:01,030
‫parte al massimo a un tour.

58
00:03:01,030 --> 00:03:03,560
‫E quindi lo chiamo maxGroupSize.

59
00:03:06,530 --> 00:03:09,793
‫E così quello dovrebbe essere

60
00:03:12,330 --> 00:03:17,070
‫di nuovo un numero, ed è di nuovo richiesto.

61
00:03:17,070 --> 00:03:22,070
‫Il tour deve avere una dimensione di gruppo.

62
00:03:24,150 --> 00:03:25,900
‫Non dimenticare la virgola qui.

63
00:03:25,900 --> 00:03:28,653
‫Successivamente, abbiamo anche bisogno di una difficoltà.

64
00:03:36,010 --> 00:03:39,470
‫E questa è una stringa, e più avanti

65
00:03:39,470 --> 00:03:42,080
‫definiremo che dovrebbe essere media, facile

66
00:03:42,080 --> 00:03:44,920
‫o difficile, ma di nuovo, questo è

67
00:03:44,920 --> 00:03:47,040
‫in realtà un validatore,

68
00:03:47,040 --> 00:03:50,130
‫e lo lascerò per un momento successivo.

69
00:03:50,130 --> 00:03:52,440
‫Ok, per ora sto solo dicendo

70
00:03:52,440 --> 00:03:54,423
‫che dovrebbe avere una difficoltà.

71
00:03:58,640 --> 00:04:02,100
‫Ora parliamo delle valutazioni.

72
00:04:02,100 --> 00:04:05,010
‫Quindi in questo momento abbiamo un campo chiamato Valutazione, ma

73
00:04:05,010 --> 00:04:07,080
‫in realtà vogliamo avere un campo per

74
00:04:07,080 --> 00:04:08,610
‫la media delle valutazioni

75
00:04:08,610 --> 00:04:10,930
‫e un campo per la quantità delle valutazioni.

76
00:04:10,930 --> 00:04:13,620
‫Quindi sostanzialmente la quantità di voti che ci sono.

77
00:04:13,620 --> 00:04:17,430
‫Quindi, in seguito, ci sarà un'altra risorsa chiamata recensioni, in cui

78
00:04:17,430 --> 00:04:20,080
‫gli utenti saranno in grado di scrivere recensioni

79
00:04:20,080 --> 00:04:22,330
‫sui tour e dare valutazioni.

80
00:04:22,330 --> 00:04:25,030
‫E questa sarà una risorsa completamente diversa

81
00:04:25,030 --> 00:04:27,060
‫e un modello completamente diverso.

82
00:04:27,060 --> 00:04:29,770
‫Ma comunque, vogliamo avere sostanzialmente un

83
00:04:29,770 --> 00:04:33,660
‫riassunto di queste valutazioni e di queste recensioni qui nei tour.

84
00:04:33,660 --> 00:04:36,630
‫Va bene, e le ragioni di ciò le

85
00:04:36,630 --> 00:04:41,240
‫imparerai un po' più tardi, quando inizieremo come e perché modelliamo i dati nei

86
00:04:41,240 --> 00:04:43,900
‫database NoSQL, e in particolare in MongoDB.

87
00:04:43,900 --> 00:04:47,913
‫Ok, per ora aggiungiamo solo la media delle valutazioni e

88
00:04:49,150 --> 00:04:50,920
‫la quantità delle valutazioni.

89
00:04:50,920 --> 00:04:53,220
‫Ok, quindi lo lasciamo qui come

90
00:04:53,220 --> 00:04:54,643
‫numero, e con

91
00:04:55,500 --> 00:04:58,590
‫questo valore predefinito e la quantità di valutazioni, ratingQuantity.

92
00:05:00,930 --> 00:05:03,803
‫Ovviamente dovrebbe essere anche un numero e

93
00:05:06,490 --> 00:05:09,160
‫il valore predefinito sarà zero.

94
00:05:09,160 --> 00:05:11,060
‫Perché ovviamente, all'inizio, non

95
00:05:11,060 --> 00:05:14,183
‫ci saranno assolutamente recensioni, quando il tour è nuovo.

96
00:05:15,590 --> 00:05:18,680
‫Ora non ho assegnato a queste due proprietà

97
00:05:18,680 --> 00:05:21,580
‫un valore obbligatorio, perché non è l'utente

98
00:05:21,580 --> 00:05:22,960
‫che crea

99
00:05:22,960 --> 00:05:26,100
‫questi tour che specificherà effettivamente questi valori, giusto?

100
00:05:26,100 --> 00:05:27,720
‫Quindi, quando

101
00:05:27,720 --> 00:05:30,310
‫creiamo un nuovo tour, non specificheremo

102
00:05:30,310 --> 00:05:32,260
‫mai i ratingAverage, né

103
00:05:32,260 --> 00:05:34,720
‫i ratingQuantity, perché in seguito

104
00:05:34,720 --> 00:05:37,570
‫verranno calcolati dalle recensioni reali, ok?

105
00:05:37,570 --> 00:05:40,040
‫Poi abbiamo il prezzo qui, quindi

106
00:05:40,040 --> 00:05:41,920
‫va bene così,

107
00:05:41,920 --> 00:05:44,403
‫e potremmo anche avere uno sconto.

108
00:05:45,390 --> 00:05:47,110
‫Quindi diciamo che questa

109
00:05:47,110 --> 00:05:51,260
‫compagnia, quindi Natours, vuole dare uno sconto a uno dei tour ad

110
00:05:51,260 --> 00:05:53,250
‫un certo punto, e quindi può

111
00:05:53,250 --> 00:05:55,463
‫specificare un prezzo scontato anche qui.

112
00:05:57,090 --> 00:06:00,850
‫Quindi prezzoSconto, e quindi mettiamolo qui al numero.

113
00:06:00,850 --> 00:06:03,220
‫Non abbiamo bisogno di alcuna opzione per il tipo di schema qui.

114
00:06:03,220 --> 00:06:04,970
‫Ad esempio, non è

115
00:06:04,970 --> 00:06:07,270
‫richiesto, quindi per ora lasciamolo così.

116
00:06:08,170 --> 00:06:12,313
‫Successivamente, possiamo specificare un riepilogo del tour.

117
00:06:14,120 --> 00:06:17,283
‫Quindi il sommario è di tipo String.

118
00:06:19,250 --> 00:06:22,040
‫Ma in realtà non lo renderò necessario.

119
00:06:22,040 --> 00:06:24,540
‫Ok, e questo è semplicemente perché non

120
00:06:24,540 --> 00:06:27,070
‫è sulla prima pagina del nostro sito web.

121
00:06:27,070 --> 00:06:29,940
‫Ok, quindi fondamentalmente non è sulla panoramica.

122
00:06:29,940 --> 00:06:31,800
‫E te lo mostrerò tra un secondo,

123
00:06:31,800 --> 00:06:33,070
‫ma per ora lasciami

124
00:06:33,070 --> 00:06:36,330
‫aggiungere qui un'altra opzione del tipo di schema che non ti ho

125
00:06:36,330 --> 00:06:37,910
‫ancora mostrato, che si chiama trim.

126
00:06:37,910 --> 00:06:40,513
‫E il trim funziona solo per le stringhe.

127
00:06:41,820 --> 00:06:43,650
‫E lo imposterò su vero.

128
00:06:43,650 --> 00:06:46,710
‫Quindi ricorda come ho detto che ci sono diversi tipi

129
00:06:46,710 --> 00:06:49,030
‫di schema per diversi tipi qui, e

130
00:06:49,030 --> 00:06:52,320
‫quindi per la stringa, abbiamo un tipo di schema che

131
00:06:52,320 --> 00:06:54,430
‫è trim che rimuoverà tutto

132
00:06:54,430 --> 00:06:57,310
‫lo spazio bianco all'inizio e alla fine della stringa.

133
00:06:57,310 --> 00:07:00,363
‫Ok, quindi se qualcuno entra,

134
00:07:01,570 --> 00:07:06,360
‫per esempio, in questo tour, bla bla bla, non importa.

135
00:07:06,360 --> 00:07:08,720
‫Quindi, se qualcuno entra in questo,

136
00:07:08,720 --> 00:07:10,940
‫allora tutto questo spazio bianco

137
00:07:10,940 --> 00:07:13,473
‫alla fine e all'inizio qui verrà tagliato.

138
00:07:15,190 --> 00:07:17,870
‫E in effetti, possiamo mettere la stessa cosa sul nome,

139
00:07:17,870 --> 00:07:19,003
‫per esempio, qui.

140
00:07:20,810 --> 00:07:22,223
‫Ok, perché no?

141
00:07:23,350 --> 00:07:24,720
‫Quindi lasciamolo così.

142
00:07:24,720 --> 00:07:27,430
‫Qui vedo che in realtà si chiama durata,

143
00:07:27,430 --> 00:07:28,403
‫non durate.

144
00:07:30,450 --> 00:07:35,240
‫Bene, quindi questo è il riassunto, anch'esso scritto male.

145
00:07:35,240 --> 00:07:37,110
‫Quindi riassunto come questo.

146
00:07:37,110 --> 00:07:38,977
‫Oh, e sì, ora volevo mostrarti il

147
00:07:38,977 --> 00:07:40,633
‫sito web di Natours, in realtà.

148
00:07:42,090 --> 00:07:44,593
‫Quindi torniamo alla nostra documentazione di Mongoose.

149
00:07:46,890 --> 00:07:48,890
‫Ma questo è quello che voglio mostrarti.

150
00:07:48,890 --> 00:07:53,540
‫Quindi Naturi. dev, che è l'originale di questa applicazione,

151
00:07:53,540 --> 00:07:56,740
‫e quindi questi sono i dati che abbiamo nella nostra API

152
00:07:56,740 --> 00:07:59,380
‫e che ovviamente abbiamo bisogno anche nel database.

153
00:07:59,380 --> 00:08:00,770
‫Quindi abbiamo tutti questi dati.

154
00:08:00,770 --> 00:08:05,260
‫Quindi questo nome del tour, abbiamo la difficoltà, abbiamo la durata, abbiamo,

155
00:08:05,260 --> 00:08:07,800
‫questo è un riassunto, quindi abbiamo un

156
00:08:07,800 --> 00:08:10,930
‫luogo di partenza, abbiamo la quantità di luoghi,

157
00:08:10,930 --> 00:08:13,050
‫abbiamo una data di inizio,

158
00:08:13,050 --> 00:08:14,800
‫abbiamo la dimensione massima

159
00:08:14,800 --> 00:08:17,602
‫del gruppo in qui, e dobbiamo quotare,

160
00:08:17,602 --> 00:08:19,810
‫la media di valutazione, la quantità

161
00:08:19,810 --> 00:08:21,193
‫di valutazione.

162
00:08:22,050 --> 00:08:23,683
‫Abbiamo anche un'immagine qui.

163
00:08:24,600 --> 00:08:27,833
‫E poi qui nella pagina dei dettagli è dove abbiamo,

164
00:08:30,045 --> 00:08:32,120
‫abbiamo il riassunto qui sotto.

165
00:08:32,120 --> 00:08:36,330
‫Abbiamo le guide che ti ho appena mostrato su Postman prima.

166
00:08:36,330 --> 00:08:38,080
‫Abbiamo altre immagini.

167
00:08:38,080 --> 00:08:40,970
‫Abbiamo qui tutte le località e abbiamo

168
00:08:40,970 --> 00:08:42,673
‫tutte le recensioni.

169
00:08:44,220 --> 00:08:47,570
‫Ok, come ti dicevo, non tutti i

170
00:08:47,570 --> 00:08:51,340
‫dati si trovano nella pagina Panoramica e quindi non

171
00:08:51,340 --> 00:08:54,500
‫sono necessari anche tutti i dati.

172
00:08:54,500 --> 00:08:57,623
‫Ok, allora torniamo qui.

173
00:08:58,490 --> 00:09:01,333
‫Successivamente, voglio aggiungere una descrizione.

174
00:09:06,510 --> 00:09:10,283
‫E questo è un tipo di String, e

175
00:09:11,850 --> 00:09:14,740
‫impostiamo di nuovo trim su true.

176
00:09:14,740 --> 00:09:16,520
‫E mi sono appena ricordato

177
00:09:16,520 --> 00:09:19,250
‫che il riepilogo è in realtà nella pagina Panoramica.

178
00:09:19,250 --> 00:09:22,280
‫E quindi rendiamo questo obbligatorio.

179
00:09:22,280 --> 00:09:24,223
‫Quindi aggiungi qui alla

180
00:09:27,010 --> 00:09:27,843
‫fine,

181
00:09:30,220 --> 00:09:34,010
‫vero, un tour deve avere una descrizione.

182
00:09:34,010 --> 00:09:39,010
‫Ok, il prossimo passo sarà specificare l'immagineCover.

183
00:09:42,344 --> 00:09:45,320
‫E quindi queste sono le immagini che vedi nella pagina di

184
00:09:45,320 --> 00:09:48,463
‫panoramica e quindi impostiamo questa in modo che richieda effettivamente questo ruolo.

185
00:09:50,060 --> 00:09:52,880
‫Quindi il tipo dovrebbe essere stringa, perché

186
00:09:52,880 --> 00:09:55,670
‫in pratica questo sarà semplicemente il nome

187
00:09:55,670 --> 00:09:57,860
‫dell'immagine qui, che poi in

188
00:09:57,860 --> 00:10:01,050
‫seguito saremo in grado di leggere dal file system.

189
00:10:01,050 --> 00:10:03,850
‫Ok, quindi in realtà solo il nome dell'immagine.

190
00:10:03,850 --> 00:10:07,040
‫Quindi fondamentalmente un riferimento verrà memorizzato nel database.

191
00:10:07,040 --> 00:10:09,530
‫Ed è una pratica molto comune, ok?

192
00:10:09,530 --> 00:10:13,270
‫Quindi potremmo archiviare anche l'intera immagine in un database, ma di

193
00:10:13,270 --> 00:10:15,400
‫solito non è una buona idea.

194
00:10:15,400 --> 00:10:18,860
‫Lasciamo semplicemente le immagini da qualche parte nel file system

195
00:10:18,860 --> 00:10:21,340
‫e poi inseriamo il nome dell'immagine stessa

196
00:10:21,340 --> 00:10:22,823
‫nel database come campo.

197
00:10:24,370 --> 00:10:27,493
‫Quindi impostalo su obbligatorio,

198
00:10:28,560 --> 00:10:32,990
‫vero, un tour deve avere un'immagine di copertina.

199
00:10:32,990 --> 00:10:36,550
‫Bello, il prossimo è il resto delle immagini.

200
00:10:36,550 --> 00:10:39,810
‫E ora qui, abbiamo qualcosa di nuovo, ok?

201
00:10:39,810 --> 00:10:41,740
‫Perché abbiamo più immagini

202
00:10:41,740 --> 00:10:44,750
‫e voglio salvare quelle immagini come un array.

203
00:10:44,750 --> 00:10:47,010
‫E in effetti, come un array di stringhe.

204
00:10:47,010 --> 00:10:50,110
‫E quindi il modo per farlo è

205
00:10:50,110 --> 00:10:54,260
‫semplificare specificando qui un array di stringhe, proprio come questo.

206
00:10:54,260 --> 00:10:57,330
‫Quindi voglio che sia ancora di tipo stringa, ma

207
00:10:57,330 --> 00:10:59,230
‫voglio che sia un array.

208
00:10:59,230 --> 00:11:02,580
‫Quindi un array in cui abbiamo un numero di stringhe.

209
00:11:02,580 --> 00:11:06,441
‫Ed è così che posso definirlo, ok?

210
00:11:06,441 --> 00:11:09,100
‫E lo useremo in seguito per qualcos'altro di nuovo.

211
00:11:09,100 --> 00:11:11,750
‫E quindi passeremo effettivamente più opzioni

212
00:11:11,750 --> 00:11:14,680
‫del tipo di schema rispetto a un semplice

213
00:11:14,680 --> 00:11:18,660
‫tipo, e quindi per allora lo useremo di nuovo, va bene?

214
00:11:18,660 --> 00:11:21,170
‫Per ora, però, andiamo avanti, e

215
00:11:21,170 --> 00:11:23,970
‫il prossimo campo che volevo aggiungere

216
00:11:23,970 --> 00:11:26,207
‫qui è il createdAt.

217
00:11:26,207 --> 00:11:29,230
‫E il campo createdAt dovrebbe essere fondamentalmente un

218
00:11:29,230 --> 00:11:33,290
‫timestamp che viene impostato dal momento in cui l'utente ottiene un nuovo tour.

219
00:11:33,290 --> 00:11:36,433
‫Quindi questo qui dovrebbe ovviamente essere aggiunto automaticamente.

220
00:11:37,660 --> 00:11:40,580
‫Anche in questo caso, al momento della creazione del tour.

221
00:11:40,580 --> 00:11:42,580
‫Quindi come lo facciamo?

222
00:11:42,580 --> 00:11:46,560
‫Bene, prima di tutto, impostiamo il tipo su Date.

223
00:11:46,560 --> 00:11:50,840
‫Quindi Data è ancora un altro tipo di dati JavaScript incorporato e quindi

224
00:11:50,840 --> 00:11:52,253
‫possiamo usarlo qui.

225
00:11:53,510 --> 00:11:56,210
‫Ok, quindi il tipo è Data, quindi

226
00:11:56,210 --> 00:11:59,010
‫dobbiamo semplicemente impostare un valore predefinito e

227
00:11:59,010 --> 00:12:00,840
‫il valore predefinito è

228
00:12:00,840 --> 00:12:04,870
‫la funzione incorporata JavaScript Date. Ora.

229
00:12:04,870 --> 00:12:07,570
‫E sono sicuro che hai familiarità con questo.

230
00:12:07,570 --> 00:12:11,390
‫Quindi questo ci darà semplicemente un timestamp in

231
00:12:11,390 --> 00:12:15,140
‫millisecondi, che fondamentalmente rappresenta il millisecondo corrente.

232
00:12:15,140 --> 00:12:16,740
‫Bene, ora a

233
00:12:16,740 --> 00:12:20,390
‫Mongo, questo viene immediatamente convertito nella data odierna

234
00:12:20,390 --> 00:12:24,153
‫per dare più senso a questi dati, ok?

235
00:12:25,650 --> 00:12:30,650
‫Quindi sì, questo è il timestamp creato automaticamente.

236
00:12:30,900 --> 00:12:35,900
‫E ora, finalmente, dobbiamo anche passare una serie di date.

237
00:12:36,400 --> 00:12:38,650
‫E ora finalmente, per finire

238
00:12:38,650 --> 00:12:43,033
‫per ora, vogliamo anche poter definire una serie di date di inizio.

239
00:12:44,836 --> 00:12:49,500
‫Quindi startDates, e ancora, definiamo semplicemente un array e poi

240
00:12:49,500 --> 00:12:52,470
‫diciamo che lì vogliamo le date.

241
00:12:52,470 --> 00:12:56,240
‫Bene, quindi queste date di inizio sono fondamentalmente date diverse

242
00:12:56,240 --> 00:12:58,400
‫in cui inizia un tour.

243
00:12:58,400 --> 00:13:00,540
‫Ad esempio, possiamo avere un tour

244
00:13:00,540 --> 00:13:02,280
‫che inizia a dicembre

245
00:13:02,280 --> 00:13:04,660
‫di quest'anno, e poi a febbraio, l'anno

246
00:13:04,660 --> 00:13:06,580
‫prossimo, e poi un altro

247
00:13:06,580 --> 00:13:09,160
‫in estate, e quindi date diverse per

248
00:13:09,160 --> 00:13:11,030
‫lo stesso tour sono semplicemente

249
00:13:11,030 --> 00:13:14,550
‫diverse, diciamo, istanze del tour a partire da date diverse.

250
00:13:14,550 --> 00:13:16,610
‫Va bene, spero che abbia senso.

251
00:13:16,610 --> 00:13:19,730
‫Ad ogni modo, questo qui non verrà creato

252
00:13:19,730 --> 00:13:23,360
‫automaticamente da MongoDB e MongoDB proverà quindi automaticamente ad

253
00:13:23,360 --> 00:13:27,000
‫analizzare la stringa che abbiamo passato come data in

254
00:13:27,000 --> 00:13:28,930
‫una vera data JavaScript.

255
00:13:28,930 --> 00:13:31,790
‫Ad esempio, potremmo passare qualcosa

256
00:13:31,790 --> 00:13:36,580
‫come diciamo 2021, 21 marzo, e di nuovo

257
00:13:36,580 --> 00:13:39,150
‫Mongo lo analizzerebbe automaticamente

258
00:13:39,150 --> 00:13:41,199
‫come una data.

259
00:13:41,199 --> 00:13:42,820
‫Puoi anche specificare la data.

260
00:13:42,820 --> 00:13:47,820
‫Ad esempio, dicendo 11 e 32 minuti, va bene.

261
00:13:48,210 --> 00:13:51,800
‫Oppure potremmo anche semplicemente inserire un timestamp Unix, quindi

262
00:13:51,800 --> 00:13:54,610
‫un timestamp come in questo formato qui.

263
00:13:54,610 --> 00:13:56,970
‫Ok, quindi tutti questi formati,

264
00:13:56,970 --> 00:14:01,200
‫in pratica, Mongo cercherà di analizzarli in una data.

265
00:14:01,200 --> 00:14:03,853
‫E solo se non può, genererà un errore.

266
00:14:04,762 --> 00:14:06,980
‫(espira) Quindi questo è stato un sacco di lavoro.

267
00:14:06,980 --> 00:14:08,730
‫Facciamo un salvataggio qui.

268
00:14:08,730 --> 00:14:11,530
‫E il modo in cui possiamo provarlo è andare

269
00:14:11,530 --> 00:14:13,850
‫qui ai nostri dati di sviluppo, dove abbiamo

270
00:14:13,850 --> 00:14:16,380
‫questo tour semplice. json, che è

271
00:14:16,380 --> 00:14:19,343
‫quello che abbiamo usato in una sezione precedente.

272
00:14:20,370 --> 00:14:21,790
‫Tutto bene.

273
00:14:21,790 --> 00:14:23,190
‫E quindi tutto

274
00:14:23,190 --> 00:14:26,023
‫ciò che farò qui sarà solo prendere

275
00:14:28,070 --> 00:14:33,070
‫tutti questi dati qui, e poi usarli per creare una nuova richiesta, ok?

276
00:14:34,920 --> 00:14:38,170
‫Quindi vogliamo creare una nuova richiesta POST qui e

277
00:14:38,170 --> 00:14:39,500
‫con tutti quei

278
00:14:39,500 --> 00:14:41,650
‫dati, invece di doverla scrivere manualmente.

279
00:14:42,660 --> 00:14:44,920
‫Ok, quindi incollo tutto questo qui.

280
00:14:46,320 --> 00:14:49,580
‫E ora in effetti, non abbiamo bisogno dell'ID.

281
00:14:49,580 --> 00:14:50,750
‫Quindi ne avevamo

282
00:14:50,750 --> 00:14:53,620
‫bisogno prima, quando stavamo facendo la nostra API

283
00:14:53,620 --> 00:14:57,200
‫basata su file, ma ora è finita, quindi sbarazziamoci di quella.

284
00:14:57,200 --> 00:14:58,690
‫E così tutto il

285
00:14:58,690 --> 00:15:02,250
‫resto dei dati che abbiamo contrassegnato come obbligatori ora sono qui, e

286
00:15:02,250 --> 00:15:03,910
‫anche un po' di più.

287
00:15:03,910 --> 00:15:07,593
‫Quindi proviamo a vedere cosa succede quando lo sottoponiamo.

288
00:15:08,500 --> 00:15:10,823
‫E ora riceviamo dati non validi inviati.

289
00:15:11,900 --> 00:15:16,450
‫Quindi andiamo effettivamente al nostro controller del tour e qui,

290
00:15:16,450 --> 00:15:19,630
‫dove creiamo un tour, invece di questo

291
00:15:19,630 --> 00:15:22,610
‫messaggio torniamo indietro come lo avevamo prima

292
00:15:22,610 --> 00:15:25,840
‫e inviamo l'intero errore solo così vediamo

293
00:15:26,780 --> 00:15:29,633
‫cosa sta effettivamente andando storto.

294
00:15:30,800 --> 00:15:34,580
‫Quindi invialo qui, ok, e il problema era che

295
00:15:34,580 --> 00:15:37,483
‫abbiamo già definito The Snow Adventure.

296
00:15:38,550 --> 00:15:41,060
‫Quindi prima liberiamoci di quello.

297
00:15:41,060 --> 00:15:43,240
‫Sì, quindi qui abbiamo

298
00:15:43,240 --> 00:15:45,650
‫The Snow Adventure, quindi dovremmo eliminarlo,

299
00:15:45,650 --> 00:15:49,130
‫e per quello sto usando la nostra API, quindi

300
00:15:49,130 --> 00:15:51,713
‫possiamo già utilizzarlo in qualche modo qui.

301
00:15:53,100 --> 00:15:54,860
‫Quindi quello dovrebbe essere sparito,

302
00:15:54,860 --> 00:15:58,690
‫e così ora dovremmo essere in grado di aggiungerlo come un nuovo tour.

303
00:15:58,690 --> 00:16:01,590
‫E infatti, ora è qui.

304
00:16:01,590 --> 00:16:05,040
‫Quindi ecco tutti i dati che abbiamo

305
00:16:05,040 --> 00:16:08,160
‫appena specificato in questo bel formato.

306
00:16:08,160 --> 00:16:10,580
‫Quindi ciò che è interessante ora è

307
00:16:10,580 --> 00:16:12,650
‫vedere effettivamente il timestamp createAt.

308
00:16:12,650 --> 00:16:16,770
‫Quindi è l'ora esatta in cui sto registrando questo video.

309
00:16:16,770 --> 00:16:19,480
‫E quindi questo è stato ovviamente creato

310
00:16:19,480 --> 00:16:23,880
‫automaticamente da questo pezzo di codice che abbiamo da qualche parte qui.

311
00:16:23,880 --> 00:16:24,853
‫Sì, questo.

312
00:16:25,970 --> 00:16:30,000
‫Quindi quella data proviene da questa data. ora timestamp

313
00:16:30,000 --> 00:16:32,970
‫che JavaScript quindi analizza automaticamente

314
00:16:32,970 --> 00:16:36,120
‫questa data piacevole e leggibile.

315
00:16:36,120 --> 00:16:39,290
‫Allora qui abbiamo questi array.

316
00:16:39,290 --> 00:16:41,407
‫Ok, quindi questo array

317
00:16:41,407 --> 00:16:45,403
‫e un altro array e, naturalmente, l'ID generato automaticamente, ok?

318
00:16:46,740 --> 00:16:48,560
‫Quindi, se veniamo

319
00:16:48,560 --> 00:16:50,940
‫qui ora, abbiamo ovviamente tre tour.

320
00:16:50,940 --> 00:16:54,340
‫Prima gli altri che non sono così completi,

321
00:16:54,340 --> 00:16:56,510
‫e poi tutti questi.

322
00:16:56,510 --> 00:16:59,450
‫Ora, ciò che è interessante vedere qui

323
00:16:59,450 --> 00:17:04,050
‫è che Mongo ha anche aggiornato il tipo di tour che già avevamo.

324
00:17:04,050 --> 00:17:06,290
‫Quindi, ad esempio, abbiamo avuto una valutazione

325
00:17:06,290 --> 00:17:08,750
‫qui, ma ora che il nostro schema è

326
00:17:08,750 --> 00:17:11,310
‫completamente cambiato, ha aggiunto questa media delle valutazioni

327
00:17:11,310 --> 00:17:15,600
‫e anche questa quantità di valutazioni, entrambe ai valori predefiniti, e lo stesso

328
00:17:15,600 --> 00:17:17,023
‫in realtà qui.

329
00:17:17,990 --> 00:17:20,410
‫Ha anche creato questo timestamp.

330
00:17:20,410 --> 00:17:25,210
‫Ha creato, sì, ha creato immagini e date di inizio, con

331
00:17:25,210 --> 00:17:27,080
‫questi array vuoti.

332
00:17:27,080 --> 00:17:29,373
‫E così ha cambiato tutti questi dati qui.

333
00:17:30,240 --> 00:17:32,830
‫Va bene, quindi prima di iniziare ad andare avanti

334
00:17:32,830 --> 00:17:34,460
‫in un progetto, dovremmo probabilmente

335
00:17:34,460 --> 00:17:36,863
‫andare avanti ed eliminare tutti questi dati qui.

336
00:17:38,380 --> 00:17:40,800
‫E in effetti, quello che faremo nel

337
00:17:40,800 --> 00:17:43,660
‫prossimo video, ora che il nostro modello è finalmente

338
00:17:43,660 --> 00:17:45,250
‫completato, almeno per

339
00:17:45,250 --> 00:17:47,410
‫questa sezione, andremo avanti e scriveremo

340
00:17:47,410 --> 00:17:50,060
‫un piccolo script che importerà automaticamente tutti i

341
00:17:50,060 --> 00:17:51,713
‫tour da questi dati JSON.

342
00:17:52,550 --> 00:17:55,090
‫Ok, quindi da questo file JSON, in realtà.

343
00:17:55,090 --> 00:17:57,170
‫Quindi fondamentalmente leggerà il file,

344
00:17:57,170 --> 00:18:00,800
‫otterrà tutti i tour e li importerà nel database.

345
00:18:00,800 --> 00:18:03,830
‫Bene, questo è quello che faremo dopo, perché

346
00:18:03,830 --> 00:18:06,160
‫sarà estremamente utile in questa sezione

347
00:18:06,160 --> 00:18:08,163
‫e anche in futuro.

