﻿1
00:00:00,940 --> 00:00:02,720
‫Jonas: Quindi abbiamo imparato a

2
00:00:02,720 --> 00:00:05,860
‫conoscere il middleware Document e query, e ora

3
00:00:05,860 --> 00:00:09,033
‫l'ultimo middleware di cui parleremo è il middleware di

4
00:00:10,560 --> 00:00:12,253
‫aggregazione e, come puoi

5
00:00:13,168 --> 00:00:14,930
‫immaginare, il middleware di aggregazione

6
00:00:14,930 --> 00:00:18,350
‫ci consente di aggiungere hook prima o dopo che si

7
00:00:18,350 --> 00:00:19,970
‫verifica un'aggregazione, e

8
00:00:19,970 --> 00:00:23,830
‫quindi ora continuiamo effettivamente con il nostro esempio precedente in cui

9
00:00:23,830 --> 00:00:27,540
‫abbiamo nascosto i tour segreti dalle query, ora in un'aggregazione

10
00:00:27,540 --> 00:00:30,270
‫i tour segreti vengono ancora utilizzati, giusto?

11
00:00:30,270 --> 00:00:32,220
‫Quindi confermiamo rapidamente che

12
00:00:33,840 --> 00:00:37,290
‫in realtà, ad esempio qui nelle nostre statistiche sui

13
00:00:37,290 --> 00:00:39,940
‫tour, quindi è lì che abbiamo usato

14
00:00:39,940 --> 00:00:42,700
‫la prima aggregazione e quindi vedi che

15
00:00:42,700 --> 00:00:45,500
‫abbiamo quattro tour qui, quattro in facile e

16
00:00:45,500 --> 00:00:49,060
‫tre in medio e quindi questo fa 11 ma abbiamo

17
00:00:49,060 --> 00:00:52,480
‫già sappi che in realtà vogliamo solo 10 tour.

18
00:00:52,480 --> 00:00:55,380
‫Quindi ci sono 10 tour che non

19
00:00:55,380 --> 00:00:58,900
‫sono segreti e uno che è segreto, quindi ora

20
00:00:58,900 --> 00:01:01,880
‫abbiamo tutti questi 11 tour qui e quindi

21
00:01:01,880 --> 00:01:05,000
‫fondamentalmente vogliamo anche escludere il tour segreto nell'aggregazione.

22
00:01:05,000 --> 00:01:06,373
‫Quindi come potremmo farlo?

23
00:01:07,430 --> 00:01:09,680
‫Bene, diamo un'occhiata a dove

24
00:01:09,680 --> 00:01:14,680
‫sta effettivamente accadendo la nostra aggregazione, quindi è quaggiù, sì, quindi nei passaggi

25
00:01:14,900 --> 00:01:19,270
‫del tour, e quindi quello che potremmo fare qui in questo

26
00:01:19,270 --> 00:01:22,640
‫stato di partita è semplicemente escludere i tour segreti

27
00:01:22,640 --> 00:01:24,520
‫che sono veri, giusto?

28
00:01:24,520 --> 00:01:26,740
‫Quindi sarebbe abbastanza facile da

29
00:01:26,740 --> 00:01:29,080
‫aggiungere qui, ma poi dovremmo aggiungere

30
00:01:29,080 --> 00:01:32,080
‫la stessa cosa quaggiù nell'altra aggregazione che

31
00:01:32,080 --> 00:01:34,680
‫abbiamo, e se avessimo ancora più

32
00:01:34,680 --> 00:01:37,860
‫aggregazioni dovremmo aggiungerla in tutte e questo è

33
00:01:37,860 --> 00:01:40,560
‫ovviamente non è una buona idea,

34
00:01:40,560 --> 00:01:44,010
‫perché ad esempio potremmo dimenticarci di farlo ed è

35
00:01:44,010 --> 00:01:48,820
‫anche solo codice ripetitivo e quindi escludiamolo semplicemente a livello di modello,

36
00:01:48,820 --> 00:01:53,280
‫va bene quindi aggiungiamo il middleware di aggregazione qui iniziando con

37
00:01:54,470 --> 00:01:55,893
‫un commento.

38
00:01:59,450 --> 00:02:03,970
‫Quindi middleware di aggregazione e così, proprio come

39
00:02:05,070 --> 00:02:10,040
‫prima, abbiamo tourSchema. pre quindi vogliamo che ciò accada

40
00:02:10,040 --> 00:02:12,110
‫prima che l'aggregazione venga

41
00:02:13,060 --> 00:02:16,573
‫effettivamente eseguita e quindi qui usiamo l'hook aggregati.

42
00:02:18,230 --> 00:02:22,047
‫Va bene e poi la nostra funzione che

43
00:02:22,047 --> 00:02:26,332
‫accetta di nuovo la funzione successiva, chiamando così il prossimo middleware.

44
00:02:26,332 --> 00:02:31,332
‫Bene, iniziamo dando un'occhiata a questo, quindi ricorda che

45
00:02:32,530 --> 00:02:37,113
‫qui nel middleware delle query che questo oggetto

46
00:02:37,113 --> 00:02:40,283
‫punta alla query corrente.

47
00:02:41,130 --> 00:02:44,590
‫Quindi qui nel middleware del documento questo

48
00:02:44,590 --> 00:02:46,850
‫oggetto punta al documento

49
00:02:46,850 --> 00:02:50,330
‫corrente, e quindi qui nel middleware di

50
00:02:50,330 --> 00:02:53,880
‫aggregazione questo punterà all'oggetto di aggregazione corrente.

51
00:02:53,880 --> 00:02:56,764
‫Ok, quindi diamo un'occhiata a questo

52
00:02:56,764 --> 00:03:00,113
‫nella console, ma prima lasciami rimuovere questo registro qui.

53
00:03:01,590 --> 00:03:05,890
‫Va bene salvalo, esegui questa aggregazione qui e ci

54
00:03:08,520 --> 00:03:12,520
‫vuole molto tempo, quindi annulliamolo e torniamo indietro

55
00:03:13,750 --> 00:03:16,580
‫e probabilmente è perché non stiamo

56
00:03:16,580 --> 00:03:21,460
‫chiamando il prossimo qui, e quindi come sappiamo già che rimaniamo

57
00:03:21,460 --> 00:03:23,580
‫bloccati nella funzione

58
00:03:23,580 --> 00:03:26,340
‫middleware e quindi non va bene.

59
00:03:26,340 --> 00:03:29,063
‫Quindi proviamo di nuovo ora send,

60
00:03:30,120 --> 00:03:33,490
‫e sì, ora siamo tornati e ora diamo

61
00:03:33,490 --> 00:03:35,470
‫un'occhiata all'oggetto di aggregazione.

62
00:03:35,470 --> 00:03:37,700
‫Ok, ci sono un sacco

63
00:03:39,980 --> 00:03:43,800
‫di cose qui, quindi non è molto interessante qui e non

64
00:03:44,950 --> 00:03:48,330
‫riesco davvero a trovare quello che sto cercando di

65
00:03:48,330 --> 00:03:53,330
‫mostrarti qui e quindi aggiungiamo semplicemente questo. pipeline va bene perché

66
00:03:53,450 --> 00:03:57,140
‫quello che volevo mostrarti è solo l'oggetto pipeline.

67
00:03:57,140 --> 00:04:00,620
‫Ok, e in realtà è una pipeline come questa, quindi in

68
00:04:00,620 --> 00:04:03,053
‫realtà è una funzione, un metodo.

69
00:04:04,970 --> 00:04:06,593
‫Quindi puliamo la console qui.

70
00:04:07,820 --> 00:04:12,820
‫Prova di nuovo, e così qui otteniamo la pipeline di aggregazione, e

71
00:04:14,350 --> 00:04:17,620
‫quindi questo è semplicemente l'array che abbiamo passato

72
00:04:17,620 --> 00:04:19,770
‫alla funzione di aggregazione prima.

73
00:04:19,770 --> 00:04:23,040
‫Bene, diamo un'occhiata e quindi

74
00:04:23,040 --> 00:04:26,400
‫qui abbiamo quell'array, questo non questo.

75
00:04:26,400 --> 00:04:28,200
‫Quindi abbiamo la corrispondenza

76
00:04:28,200 --> 00:04:30,910
‫per raggruppare e poi l'ordinamento, quindi se diamo

77
00:04:30,910 --> 00:04:34,470
‫un'occhiata qui alla console abbiamo effettivamente la nostra corrispondenza con la

78
00:04:34,470 --> 00:04:37,320
‫media delle valutazioni, abbiamo gruppo e poi ordinamento.

79
00:04:37,320 --> 00:04:41,020
‫Quindi questa è esattamente la pipeline che abbiamo specificato prima,

80
00:04:41,020 --> 00:04:44,570
‫e quindi ora per filtrare i tour segreti tutto

81
00:04:44,570 --> 00:04:47,970
‫ciò che dobbiamo fare è aggiungere un'altra fase di

82
00:04:47,970 --> 00:04:50,700
‫corrispondenza proprio all'inizio di questo array

83
00:04:50,700 --> 00:04:53,713
‫di pipeline, giusto e quindi facciamo proprio questo.

84
00:04:55,029 --> 00:04:58,040
‫Quindi facciamolo qui prima di

85
00:04:58,040 --> 00:05:03,040
‫questo registro, quindi questo. pipeline e ricorda che questo è un array

86
00:05:03,890 --> 00:05:06,130
‫e come aggiungiamo un elemento all'inizio di

87
00:05:06,130 --> 00:05:06,963
‫un array?

88
00:05:08,262 --> 00:05:11,510
‫Usiamo unshift e quindi questo è un metodo JavaScript

89
00:05:11,510 --> 00:05:15,340
‫standard per gli array ok, abbiamo anche shift da aggiungere alla

90
00:05:15,340 --> 00:05:18,470
‫fine dell'array e unshift all'inizio dell'array, e quindi

91
00:05:18,470 --> 00:05:21,690
‫di nuovo quello che vogliamo aggiungere qui ora

92
00:05:21,690 --> 00:05:25,490
‫è aggiungere solo un altro stadio, quindi molto simile a quello

93
00:05:25,490 --> 00:05:26,803
‫che abbiamo quaggiù.

94
00:05:29,690 --> 00:05:34,690
‫Quindi match e poi secretTour, non uguale a vero.

95
00:05:40,460 --> 00:05:45,340
‫Dagli un salvataggio, e quindi questo pezzo di codice qui fondamentalmente è

96
00:05:45,340 --> 00:05:48,330
‫esattamente quello che abbiamo qui, giusto?

97
00:05:48,330 --> 00:05:51,220
‫In pratica rimuovendo dall'output tutti

98
00:05:51,220 --> 00:05:55,260
‫i documenti che hanno secretTour impostato su true, giusto?

99
00:05:55,260 --> 00:06:00,160
‫Quindi se lo salvi ora, allora controlliamo questo, e ricorda che ora abbiamo

100
00:06:00,160 --> 00:06:03,250
‫11 tour, quattro, quattro e tre quindi controlliamo

101
00:06:03,250 --> 00:06:06,780
‫il risultato dopo e quindi ora in effetti uno

102
00:06:06,780 --> 00:06:10,340
‫dei tuoi difficili è andato quindi solo ora abbiamo

103
00:06:10,340 --> 00:06:13,460
‫tre tour difficili, il che significa che siamo

104
00:06:13,460 --> 00:06:15,930
‫tornati ad averne solo 10.

105
00:06:15,930 --> 00:06:20,260
‫Ok e in realtà possiamo confermare che il nostro tour super segreto

106
00:06:20,260 --> 00:06:24,630
‫è stato un tour difficile, va bene e quindi ora è andato

107
00:06:24,630 --> 00:06:27,700
‫e quindi i nostri risultati ora riguardano

108
00:06:27,700 --> 00:06:30,800
‫solo i normali tour non segreti, va bene?

109
00:06:30,800 --> 00:06:34,670
‫E ora possiamo dare di nuovo un'occhiata alla nostra pipeline

110
00:06:34,670 --> 00:06:38,640
‫di aggregazione e qui vedete che ora abbiamo queste due fasi abbinate.

111
00:06:38,640 --> 00:06:41,150
‫Ottimo e come ho detto prima non

112
00:06:41,150 --> 00:06:45,050
‫è un problema ripetere queste fasi, possiamo avere tutte le fasi

113
00:06:45,050 --> 00:06:49,920
‫di corrispondenza che vogliamo, ok e questo è tutto per il middleware di aggregazione.

114
00:06:49,920 --> 00:06:53,740
‫Non includerò alcun codice postale qui per il middleware che

115
00:06:53,740 --> 00:06:56,290
‫non sia realmente necessario, e non

116
00:06:56,290 --> 00:06:59,050
‫parlerò nemmeno del middleware modello qui perché

117
00:06:59,050 --> 00:07:01,570
‫non è davvero così importante.

118
00:07:01,570 --> 00:07:04,750
‫Bene, quindi il middleware è qualcosa di veramente interessante

119
00:07:04,750 --> 00:07:08,180
‫e importante che possiamo aggiungere ai nostri modelli, e ci

120
00:07:08,180 --> 00:07:10,560
‫sono davvero altre cose interessanti che possiamo

121
00:07:10,560 --> 00:07:13,430
‫fare con i modelli, ad esempio implementare metodi

122
00:07:13,430 --> 00:07:16,690
‫di istanza che sono metodi che saranno disponibili su ogni

123
00:07:16,690 --> 00:07:19,220
‫documento dopo essere stato interrogato, e anche

124
00:07:19,220 --> 00:07:21,410
‫questo può essere abbastanza utile, e

125
00:07:21,410 --> 00:07:23,402
‫lo faremo anche più

126
00:07:23,402 --> 00:07:25,570
‫avanti nella sezione di autenticazione, ok.

127
00:07:25,570 --> 00:07:27,940
‫Quindi lo lascerò per un po' più

128
00:07:27,940 --> 00:07:30,110
‫tardi, ora quello che faremo in

129
00:07:30,110 --> 00:07:34,170
‫questa sezione solo per finire è aggiungere effettivamente un po' di convalida, va

130
00:07:34,170 --> 00:07:37,070
‫bene e quindi nei prossimi due video ne parleremo.

