﻿1
00:00:01,336 --> 00:00:03,960
‫Istruttore: In questo video, continuiamo a

2
00:00:03,960 --> 00:00:06,900
‫tradurre il modello di dati che abbiamo stabilito all'inizio

3
00:00:06,900 --> 00:00:09,600
‫della sezione in un codice vero e proprio.

4
00:00:09,600 --> 00:00:13,023
‫E quindi, questa volta implementeremo il modello delle recensioni.

5
00:00:14,780 --> 00:00:17,870
‫Quindi il primo passo è creare un nuovo file nella

6
00:00:17,870 --> 00:00:22,273
‫cartella dei modelli e chiamarlo ReviewModel. js.

7
00:00:25,800 --> 00:00:29,480
‫E per me, questa sembra un'altra grande sfida per te per mettere

8
00:00:29,480 --> 00:00:31,640
‫in pratica alcune delle abilità che

9
00:00:31,640 --> 00:00:34,090
‫hai già imparato fino a questo punto.

10
00:00:34,090 --> 00:00:36,890
‫Ok, quindi, in questa sfida, voglio che tu crei

11
00:00:36,890 --> 00:00:38,200
‫il modello di revisione.

12
00:00:38,200 --> 00:00:41,370
‫E quello di cui abbiamo bisogno lì dentro è in realtà molto semplice.

13
00:00:41,370 --> 00:00:43,220
‫Quindi permettetemi di metterlo qui in un commento.

14
00:00:44,360 --> 00:00:46,090
‫Quindi fondamentalmente vogliamo una recensione,

15
00:00:46,090 --> 00:00:48,030
‫quindi il testo per la recensione.

16
00:00:48,030 --> 00:00:49,350
‫Vogliamo una valutazione

17
00:00:50,230 --> 00:00:51,840
‫così proprio come questa.

18
00:00:51,840 --> 00:00:54,950
‫Quindi vogliamo anche un createdAt così con

19
00:00:54,950 --> 00:00:56,760
‫il timestamp corrente e

20
00:00:56,760 --> 00:01:00,880
‫quindi vogliamo anche un riferimento al tour a cui appartiene

21
00:01:00,880 --> 00:01:02,590
‫questa recensione e

22
00:01:02,590 --> 00:01:05,793
‫anche all'utente che ha scritto questa recensione.

23
00:01:07,870 --> 00:01:12,090
‫Ok, quindi fondamentalmente due riferimenti ai genitori qui, giusto.

24
00:01:12,090 --> 00:01:14,270
‫Quindi, con le cose che hai imparato

25
00:01:14,270 --> 00:01:15,790
‫nelle ultime due lezioni,

26
00:01:15,790 --> 00:01:18,410
‫dovresti essere in grado di completare questa sfida

27
00:01:18,410 --> 00:01:19,660
‫completamente da solo.

28
00:01:19,660 --> 00:01:23,033
‫Quindi, metti in pausa il video ora e buona fortuna.

29
00:01:26,690 --> 00:01:29,430
‫Ora, ok, quindi spero che tu

30
00:01:29,430 --> 00:01:33,070
‫non l'abbia semplicemente saltato e invece l'hai implementato davvero da

31
00:01:33,070 --> 00:01:35,813
‫solo e comunque, è così che l'ho creato.

32
00:01:36,780 --> 00:01:39,490
‫Quindi, ovviamente, dobbiamo iniziare richiedendo la mangusta e quindi lo

33
00:01:46,880 --> 00:01:47,713
‫schema di

34
00:01:50,728 --> 00:01:54,480
‫revisione è uguale alla nuova mangusta. Schema.

35
00:02:00,780 --> 00:02:03,053
‫E quindi iniziamo ad aggiungere i nostri campi.

36
00:02:03,960 --> 00:02:06,790
‫Quindi prima la recensione è ovviamente una stringa.

37
00:02:06,790 --> 00:02:09,830
‫Ora, giusto e ovviamente, lo sto facendo

38
00:02:09,830 --> 00:02:12,660
‫troppo velocemente, quindi devo anche specificare il

39
00:02:12,660 --> 00:02:15,013
‫tipo e poi impostiamolo anche

40
00:02:16,930 --> 00:02:17,763
‫su

41
00:02:19,180 --> 00:02:22,623
‫una recensione richiesta, vera, non può essere vuota.

42
00:02:23,820 --> 00:02:26,333
‫Quindi vogliamo una valutazione

43
00:02:30,130 --> 00:02:32,663
‫e questa è del tipo numero.

44
00:02:33,940 --> 00:02:37,333
‫E il punteggio è idealmente compreso tra uno e cinque.

45
00:02:38,580 --> 00:02:43,580
‫E quindi il minimo di uno e il massimo è di cinque.

46
00:02:43,620 --> 00:02:44,700
‫Quindi, come

47
00:02:44,700 --> 00:02:47,000
‫già sai, questi sono alcuni semplici validatori.

48
00:02:47,000 --> 00:02:50,260
‫Funziona solo per i numeri, giusto.

49
00:02:50,260 --> 00:02:51,543
‫Questo non è corretto qui.

50
00:02:52,570 --> 00:02:53,640
‫Bene.

51
00:02:53,640 --> 00:02:55,733
‫Successivamente, il creatoAt.

52
00:02:59,630 --> 00:03:01,783
‫In questo è di tipo,

53
00:03:05,120 --> 00:03:07,360
‫data e per impostazione predefinita vogliamo

54
00:03:10,380 --> 00:03:12,300
‫Data. Ora.

55
00:03:12,300 --> 00:03:13,133
‫Bene.

56
00:03:14,480 --> 00:03:16,700
‫Quindi questa era la parte facile.

57
00:03:16,700 --> 00:03:18,980
‫E in realtà creiamo anche un

58
00:03:18,980 --> 00:03:21,523
‫modello ed esportiamolo prima di aggiungere questi riferimenti.

59
00:03:22,930 --> 00:03:25,023
‫Quindi const, Review è

60
00:03:26,090 --> 00:03:29,710
‫uguale a mangusta. modello con il

61
00:03:32,630 --> 00:03:34,320
‫nome Review.

62
00:03:34,320 --> 00:03:35,920
‫E poi, naturalmente, rivedereSchema.

63
00:03:41,210 --> 00:03:44,430
‫Per finire il modulo del corso. export

64
00:03:46,040 --> 00:03:49,340
‫è uguale a Review.

65
00:03:49,340 --> 00:03:52,890
‫Va bene, e ora arriva la parte di riferimento.

66
00:03:52,890 --> 00:03:56,880
‫Quindi una recensione ovviamente deve appartenere a un tour.

67
00:03:56,880 --> 00:03:58,900
‫E ha anche bisogno di un autore.

68
00:03:58,900 --> 00:03:59,733
‫Bene.

69
00:03:59,733 --> 00:04:01,710
‫Quindi questo è di nuovo ciò che

70
00:04:01,710 --> 00:04:03,910
‫abbiamo specificato nella nostra lezione sulla modellazione dei dati.

71
00:04:03,910 --> 00:04:06,000
‫Quindi, in pratica, in

72
00:04:06,000 --> 00:04:09,030
‫questo caso avremmo implementato la referenziazione dei genitori.

73
00:04:09,030 --> 00:04:12,060
‫Perché sia il tour che l'utente sono in un certo

74
00:04:12,060 --> 00:04:15,020
‫senso i genitori di questo set di dati.

75
00:04:15,020 --> 00:04:17,080
‫E abbiamo deciso di farlo

76
00:04:17,080 --> 00:04:18,790
‫in questo modo

77
00:04:18,790 --> 00:04:22,140
‫perché cancelleremo potenzialmente enormemente qualsiasi elemento genitore, giusto?

78
00:04:22,140 --> 00:04:24,680
‫Quindi non dovremmo progettare la nostra

79
00:04:24,680 --> 00:04:27,600
‫applicazione pensando che ci saranno solo poche recensioni.

80
00:04:27,600 --> 00:04:30,660
‫Solo per poi tornarci dopo un po' di tempo

81
00:04:30,660 --> 00:04:33,700
‫e scoprire che le nostre supposizioni erano sbagliate.

82
00:04:33,700 --> 00:04:36,660
‫E ora dobbiamo ricostruire il nostro intero modello di dati.

83
00:04:36,660 --> 00:04:38,340
‫Quindi sarebbe terribile.

84
00:04:38,340 --> 00:04:41,110
‫Quindi in molte situazioni, come già sai

85
00:04:41,110 --> 00:04:44,520
‫quello che non sappiamo davvero, quanto crescerà la nostra cancellazione.

86
00:04:44,520 --> 00:04:47,970
‫Quindi è solo meglio optare per il riferimento dei genitori.

87
00:04:47,970 --> 00:04:50,580
‫Quindi, di nuovo, è esattamente quello che stiamo

88
00:04:50,580 --> 00:04:53,400
‫facendo qui quando facciamo riferimento a tour e utenti.

89
00:04:53,400 --> 00:04:56,383
‫Quindi ora andiamo avanti e implementiamolo.

90
00:04:57,390 --> 00:04:58,853
‫E a partire dal tour.

91
00:05:01,070 --> 00:05:02,650
‫Bene.

92
00:05:02,650 --> 00:05:06,153
‫Quindi qui abbiamo bisogno di un po' di spazio, e va bene.

93
00:05:07,630 --> 00:05:12,140
‫Quindi il tipo è come prima, mangusta, e non

94
00:05:12,140 --> 00:05:13,423
‫è corretto.

95
00:05:14,290 --> 00:05:18,593
‫Quindi mangusta. Schema. ObjectId, con la

96
00:05:21,600 --> 00:05:25,890
‫O maiuscola e la I maiuscola, ma non la D.

97
00:05:25,890 --> 00:05:26,930
‫E te lo

98
00:05:26,930 --> 00:05:29,760
‫sto dicendo solo perché una volta ho scritto ID in

99
00:05:29,760 --> 00:05:32,370
‫questo modo, e poi ho passato mezz'ora a cercare

100
00:05:32,370 --> 00:05:34,560
‫di capire perché la mia applicazione non funzionava.

101
00:05:34,560 --> 00:05:37,293
‫Ok, quindi questa D deve essere minuscola.

102
00:05:38,880 --> 00:05:39,713
‫Comunque.

103
00:05:39,713 --> 00:05:44,540
‫Il riferimento in questo caso è ovviamente il tour.

104
00:05:44,540 --> 00:05:46,813
‫E vogliamo anche renderlo obbligatorio.

105
00:05:49,680 --> 00:05:54,680
‫Quindi vero e quindi Review deve appartenere a

106
00:05:57,300 --> 00:05:58,780
‫un tour.

107
00:05:58,780 --> 00:05:59,670
‫Bene.

108
00:05:59,670 --> 00:06:02,820
‫E proprio così, ogni documento Review ora

109
00:06:02,820 --> 00:06:05,870
‫sa esattamente a quale tour appartiene.

110
00:06:05,870 --> 00:06:08,570
‫Mentre il tour ovviamente non sa

111
00:06:08,570 --> 00:06:11,640
‫inizialmente quali Recensioni e quante Recensioni ci sono.

112
00:06:11,640 --> 00:06:13,070
‫Ma che è un problema

113
00:06:13,070 --> 00:06:14,820
‫che in realtà risolveremo un po' più tardi.

114
00:06:16,290 --> 00:06:17,220
‫Bene.

115
00:06:17,220 --> 00:06:20,453
‫Successivamente, quando c'è una recensione, non solo vogliamo

116
00:06:20,453 --> 00:06:23,270
‫sapere a quale tour appartiene, ma anche

117
00:06:23,270 --> 00:06:25,373
‫chi ha scritto questa recensione.

118
00:06:26,570 --> 00:06:27,933
‫Quindi

119
00:06:29,580 --> 00:06:32,410
‫utente, e ancora, lo stesso

120
00:06:32,410 --> 00:06:37,243
‫tipo di mangusta. Schema. ObjectId, e

121
00:06:38,610 --> 00:06:39,443
‫questa

122
00:06:39,443 --> 00:06:44,443
‫volta il riferimento, come puoi immaginare, sarà user.

123
00:06:44,460 --> 00:06:47,880
‫Ok, e di nuovo lo rendiamo

124
00:06:47,880 --> 00:06:51,960
‫obbligatorio perché, in sostanza, una recensione non può

125
00:06:51,960 --> 00:06:54,830
‫funzionare senza un autore.

126
00:06:54,830 --> 00:06:56,800
‫E quindi la

127
00:06:58,250 --> 00:07:01,163
‫recensione deve appartenere a un utente.

128
00:07:05,080 --> 00:07:06,563
‫Ok, è proprio così.

129
00:07:07,470 --> 00:07:08,303
‫Bene.

130
00:07:09,670 --> 00:07:12,750
‫Ora, solo per finire, aggiungiamo anche queste opzioni

131
00:07:12,750 --> 00:07:16,280
‫allo schema in cui facciamo in modo che le proprietà virtuali

132
00:07:16,280 --> 00:07:19,470
‫vengano visualizzate anche negli output di Json e degli oggetti.

133
00:07:19,470 --> 00:07:20,303
‫Bene.

134
00:07:20,303 --> 00:07:22,450
‫Quindi lo abbiamo fatto prima nei tour.

135
00:07:22,450 --> 00:07:25,290
‫Non sono sicuro che l'abbiamo fatto nel modello utente.

136
00:07:25,290 --> 00:07:27,080
‫Ma comunque, qui ne avremo davvero bisogno

137
00:07:27,080 --> 00:07:28,480
‫un po' più tardi.

138
00:07:28,480 --> 00:07:30,160
‫Quindi dobbiamo specificarlo.

139
00:07:30,160 --> 00:07:32,710
‫Ricorda, in pratica intendo

140
00:07:36,320 --> 00:07:37,860
‫questa parte.

141
00:07:37,860 --> 00:07:40,570
‫Quindi in realtà vado avanti e lo copio.

142
00:07:40,570 --> 00:07:42,023
‫Solo per farci risparmiare un po' di tempo.

143
00:07:45,250 --> 00:07:48,580
‫E così di nuovo, tutto ciò che fa è davvero assicurarsi

144
00:07:48,580 --> 00:07:50,730
‫che quando abbiamo una proprietà virtuale,

145
00:07:50,730 --> 00:07:53,350
‫fondamentalmente un campo che non è memorizzato nel

146
00:07:53,350 --> 00:07:55,850
‫database ma calcolato utilizzando un altro valore.

147
00:07:55,850 --> 00:07:59,670
‫Quindi vogliamo che questo venga visualizzato anche ogni volta che c'è un output.

148
00:07:59,670 --> 00:08:02,113
‫Giusto, ed è quello che facciamo qui.

149
00:08:03,130 --> 00:08:03,963
‫Bene.

150
00:08:03,963 --> 00:08:07,490
‫E quindi penso davvero che sia tutto per ora.

151
00:08:07,490 --> 00:08:08,550
‫Molto semplice.

152
00:08:08,550 --> 00:08:11,530
‫L'unica parte un po' complicata è creare

153
00:08:11,530 --> 00:08:13,010
‫questi riferimenti qui.

154
00:08:13,010 --> 00:08:14,680
‫Ma in realtà l'abbiamo

155
00:08:14,680 --> 00:08:17,673
‫fatto prima e quindi funziona esattamente allo stesso modo.

156
00:08:19,430 --> 00:08:21,800
‫Quindi nel prossimo video utilizzeremo

157
00:08:21,800 --> 00:08:24,470
‫lo schema per creare alcune nuove recensioni.

158
00:08:24,470 --> 00:08:25,653
‫Allora ci vediamo.

