﻿1
00:00:01,100 --> 00:00:03,700
‫Istruttore: Popoliamo ora le recensioni sia

2
00:00:03,700 --> 00:00:06,503
‫con l'utente che con i dati del tour.

3
00:00:08,360 --> 00:00:11,470
‫Quindi, proprio come nel tour, ora facciamo

4
00:00:11,470 --> 00:00:14,910
‫in modo che sia il tour che l'utente vengano

5
00:00:14,910 --> 00:00:19,330
‫automaticamente popolati ogni volta che c'è una query per una recensione.

6
00:00:19,330 --> 00:00:22,110
‫Dato che lo abbiamo già fatto

7
00:00:22,110 --> 00:00:25,140
‫prima, ora ti darò un'altra sfida, ok.

8
00:00:25,140 --> 00:00:27,140
‫Quindi voglio che tu vada avanti

9
00:00:27,140 --> 00:00:31,060
‫e lo faccia proprio come abbiamo fatto nei tour, ma ora passiamo alle recensioni.

10
00:00:31,060 --> 00:00:32,850
‫Solo un suggerimento che

11
00:00:32,850 --> 00:00:35,140
‫devo darti prima che tu possa farlo

12
00:00:35,140 --> 00:00:37,490
‫da solo, è che quando vuoi popolare

13
00:00:37,490 --> 00:00:40,140
‫due campi, devi effettivamente chiamare popola due volte.

14
00:00:40,140 --> 00:00:43,430
‫Quindi una volta per ciascuno dei campi, va bene.

15
00:00:43,430 --> 00:00:45,740
‫Con queste informazioni, dovresti essere a posto

16
00:00:45,740 --> 00:00:48,763
‫per mettere in pausa il video ora e andare a provarlo.

17
00:00:52,780 --> 00:00:55,023
‫Quindi spero che non sia stato troppo difficile.

18
00:00:56,070 --> 00:00:59,583
‫Andiamo avanti e chiudiamo solo alcuni file qui, quindi

19
00:01:00,850 --> 00:01:04,320
‫tutto ciò che non è correlato alle recensioni, non

20
00:01:04,320 --> 00:01:05,603
‫ci serve più.

21
00:01:06,740 --> 00:01:10,440
‫Quindi andiamo al modello di revisione e poi

22
00:01:10,440 --> 00:01:12,823
‫implementiamo o pre-trova il middleware.

23
00:01:14,900 --> 00:01:18,120
‫Quindi lo facciamo sullo schema, come

24
00:01:18,120 --> 00:01:21,870
‫già sai, e poi di nuovo usiamo un'espressione regolare

25
00:01:21,870 --> 00:01:25,883
‫per abbinare sostanzialmente le stringhe, che iniziano con find.

26
00:01:27,170 --> 00:01:30,100
‫Quindi, di nuovo, funzionerà per trovare, per trovarne

27
00:01:30,100 --> 00:01:34,160
‫uno e tutti gli altri per trovare uno dei metodi

28
00:01:34,160 --> 00:01:35,710
‫disponibili in Mongoose.

29
00:01:40,960 --> 00:01:44,340
‫Come sempre, comincio scrivendo dopo.

30
00:01:44,340 --> 00:01:46,180
‫E ora tutto ciò che dobbiamo

31
00:01:46,180 --> 00:01:51,123
‫fare è chiamare popolate sulla query corrente, quindi questo. popolare, e ora specificherò

32
00:01:53,200 --> 00:01:56,460
‫effettivamente l'oggetto options perché voglio solo selezionare

33
00:01:56,460 --> 00:01:59,550
‫un paio di campi e non l'intero

34
00:01:59,550 --> 00:02:02,573
‫tour, e anche non l'intero utente.

35
00:02:03,790 --> 00:02:07,540
‫Quindi ricorda, iniziamo con la proprietà del percorso e

36
00:02:07,540 --> 00:02:10,053
‫questa sarà per il tour.

37
00:02:11,140 --> 00:02:15,280
‫Quindi, di nuovo, specificando tour qui, significa che questo campo qui,

38
00:02:15,280 --> 00:02:17,750
‫che ha l'esatto nome, sarà quello

39
00:02:17,750 --> 00:02:20,230
‫che verrà popolato in base a un

40
00:02:20,230 --> 00:02:21,860
‫modello di tour.

41
00:02:21,860 --> 00:02:25,580
‫Bene, perché è quello che abbiamo specificato qui, ok.

42
00:02:25,580 --> 00:02:28,530
‫Quindi il riferimento è a un modello

43
00:02:28,530 --> 00:02:31,680
‫chiamato tour, e fondamentalmente è in quella raccolta

44
00:02:31,680 --> 00:02:35,533
‫in cui Mongoose cercherà i documenti con l'ID che abbiamo specificato.

45
00:02:36,640 --> 00:02:41,290
‫Va bene, quindi vogliamo un tour, ma poi diciamo che in

46
00:02:42,360 --> 00:02:45,070
‫realtà vogliamo solo il nome del

47
00:02:45,070 --> 00:02:46,823
‫tour e nient'altro.

48
00:02:47,830 --> 00:02:52,140
‫Quindi seleziona, ok, e poi solo il nome, e poi come ho

49
00:02:52,140 --> 00:02:55,680
‫detto, se vogliamo popolare più campi, tutto ciò che

50
00:02:55,680 --> 00:02:58,453
‫dobbiamo fare è chiamare di nuovo popola.

51
00:03:00,370 --> 00:03:03,950
‫Quindi a questo punto la query viene popolata con i tour e

52
00:03:03,950 --> 00:03:05,650
‫ora dobbiamo compilarla di nuovo,

53
00:03:05,650 --> 00:03:07,123
‫questa volta con l'utente.

54
00:03:13,130 --> 00:03:15,110
‫E ora seleziona, e

55
00:03:15,110 --> 00:03:19,690
‫in realtà mostra solo il nome utente e la foto e

56
00:03:19,690 --> 00:03:22,510
‫non, ad esempio, cose come l'e-mail.

57
00:03:22,510 --> 00:03:23,800
‫Quindi diciamo che

58
00:03:23,800 --> 00:03:26,140
‫qualcuno colpisce l'API per ottenere tutte

59
00:03:26,140 --> 00:03:28,720
‫le recensioni, ma poi non vogliamo far trapelare

60
00:03:28,720 --> 00:03:32,200
‫tutti i dettagli sugli utenti che pubblicano queste recensioni al cliente.

61
00:03:32,200 --> 00:03:35,550
‫Quindi nessuno dovrebbe davvero essere in grado di

62
00:03:35,550 --> 00:03:39,310
‫conoscere i dati privati sui revisori, come le e-mail, ok.

63
00:03:39,310 --> 00:03:44,060
‫Quindi, di nuovo, trapeliamo solo, inviamo solo dati rilevanti sull'utente e,

64
00:03:44,060 --> 00:03:48,720
‫in questo caso, sono il nome e la foto, ok.

65
00:03:48,720 --> 00:03:51,920
‫Quindi salva questo e se ora raggiungiamo o otteniamo

66
00:03:51,920 --> 00:03:54,360
‫tutti gli endpoint delle recensioni, allora

67
00:03:54,360 --> 00:03:58,070
‫già il tour e l'utente dovrebbero essere popolati invece di

68
00:03:58,070 --> 00:04:00,323
‫vedere solo gli ID lì.

69
00:04:01,320 --> 00:04:04,240
‫Proviamolo, e ci siamo.

70
00:04:04,240 --> 00:04:07,260
‫Quindi funziona, otteniamo il nome,

71
00:04:07,260 --> 00:04:11,890
‫e ovviamente anche l'ID, e poi lo stesso per l'utente.

72
00:04:11,890 --> 00:04:14,783
‫Quindi otteniamo il nome, ma poi non la foto.

73
00:04:15,780 --> 00:04:19,170
‫Quindi vediamo, forse non ho capito, specificare la proprietà

74
00:04:19,170 --> 00:04:22,160
‫della foto, quindi diamo un'occhiata a questo.

75
00:04:22,160 --> 00:04:26,190
‫Quindi userModel, ma in realtà è lì.

76
00:04:26,190 --> 00:04:29,900
‫No, mi dispiace, ovviamente non vediamo la foto perché non abbiamo

77
00:04:29,900 --> 00:04:33,463
‫mai specificato nessuna foto per nessuno dei nostri utenti.

78
00:04:34,470 --> 00:04:38,230
‫Ok, quindi l'unica proprietà che esiste effettivamente è

79
00:04:38,230 --> 00:04:41,550
‫il nome, quindi è quello che otteniamo.

80
00:04:41,550 --> 00:04:44,520
‫Ok, e in effetti è così.

81
00:04:44,520 --> 00:04:47,550
‫È davvero semplice, è tutto ciò che dobbiamo fare

82
00:04:47,550 --> 00:04:49,020
‫per ottenere tutti i

83
00:04:49,020 --> 00:04:52,280
‫dati correlati, proprio come abbiamo specificato nel nostro modello di dati.

84
00:04:52,280 --> 00:04:53,900
‫Ora di nuovo,

85
00:04:53,900 --> 00:04:56,690
‫tieni presente che questa aggiungerà alcune query

86
00:04:56,690 --> 00:04:59,110
‫extra, e in questo caso, in

87
00:04:59,110 --> 00:05:01,410
‫realtà sono due query, perché

88
00:05:01,410 --> 00:05:05,200
‫dietro le quinte, Mongoose dovrà effettivamente interrogare sia i tour

89
00:05:05,200 --> 00:05:08,690
‫che gli utenti per trovare il documento corrispondente, ok.

90
00:05:08,690 --> 00:05:09,670
‫Quindi questo dovrebbe

91
00:05:09,670 --> 00:05:12,230
‫probabilmente aggiungere un po' di tempo qui alla query.

92
00:05:12,230 --> 00:05:16,340
‫Quindi ci sono voluti 266 millisecondi, così.

93
00:05:16,340 --> 00:05:19,700
‫Facciamo solo, per motivi di esperimento, commentiamo

94
00:05:19,700 --> 00:05:22,593
‫questo codice e poi riproviamo.

95
00:05:24,800 --> 00:05:28,340
‫E questo richiede molto tempo, non sono sicuro del perché.

96
00:05:28,340 --> 00:05:32,423
‫Quindi facciamolo di nuovo, e quindi vedete, 157 millisecondi, e

97
00:05:33,280 --> 00:05:37,033
‫se lo rimettiamo a posto, lo facciamo di nuovo.

98
00:05:39,080 --> 00:05:40,560
‫E ancora, ci vuole un sacco

99
00:05:40,560 --> 00:05:42,750
‫di tempo, e così di nuovo, lo sto facendo due volte.

100
00:05:42,750 --> 00:05:45,900
‫Ma vedi comunque che ci è voluto un po' di più, ok.

101
00:05:45,900 --> 00:05:47,570
‫Quindi non è la

102
00:05:47,570 --> 00:05:50,450
‫fine del mondo, erano solo come 100 millisecondi in

103
00:05:50,450 --> 00:05:52,330
‫più, ma quando raggiungi una certa

104
00:05:52,330 --> 00:05:54,410
‫scala, questo potrebbe fare la differenza.

105
00:05:54,410 --> 00:05:57,580
‫Quindi, di nuovo, voglio solo che lo tenga a mente.

106
00:05:57,580 --> 00:06:01,113
‫Ad ogni modo, per questa lezione è tutto, quindi ora andiamo avanti.

