﻿1
00:00:00,940 --> 00:00:02,720
‫Jonas : Nous avons donc

2
00:00:02,720 --> 00:00:05,860
‫découvert le middleware de document et de requête, et

3
00:00:05,860 --> 00:00:09,033
‫maintenant le dernier middleware dont nous allons parler est

4
00:00:10,560 --> 00:00:12,253
‫le middleware d'agrégation, et comme

5
00:00:13,168 --> 00:00:14,930
‫vous pouvez probablement le deviner,

6
00:00:14,930 --> 00:00:18,350
‫le middleware d'agrégation nous permet d'ajouter des crochets avant ou

7
00:00:18,350 --> 00:00:19,970
‫après une agrégation, et

8
00:00:19,970 --> 00:00:23,830
‫ainsi de suite Continuons maintenant avec notre exemple précédent où nous avons

9
00:00:23,830 --> 00:00:27,540
‫caché les visites secrètes des requêtes, maintenant dans une agrégation, les

10
00:00:27,540 --> 00:00:30,270
‫visites secrètes sont toujours utilisées, n'est-ce pas ?

11
00:00:30,270 --> 00:00:32,220
‫Alors confirmons rapidement qu'en fait,

12
00:00:33,840 --> 00:00:37,290
‫par exemple ici dans nos statistiques de tournée, c'est donc

13
00:00:37,290 --> 00:00:39,940
‫là que nous avons utilisé la première

14
00:00:39,940 --> 00:00:42,700
‫agrégation et donc vous voyez que nous avons

15
00:00:42,700 --> 00:00:45,500
‫quatre tournées ici, quatre en facile et trois

16
00:00:45,500 --> 00:00:49,060
‫en moyen et donc ça fait 11 mais nous avons déjà

17
00:00:49,060 --> 00:00:52,480
‫sachez que nous ne voulons en fait que 10 tournées.

18
00:00:52,480 --> 00:00:55,380
‫Il y a donc 10 tournées qui

19
00:00:55,380 --> 00:00:58,900
‫ne sont pas secrètes et une qui est secrète, et maintenant

20
00:00:58,900 --> 00:01:01,880
‫nous obtenons toutes ces 11 tournées ici et donc

21
00:01:01,880 --> 00:01:05,000
‫fondamentalement, nous voulons également exclure la tournée secrète de l'agrégation.

22
00:01:05,000 --> 00:01:06,373
‫Alors comment pourrions-nous faire cela?

23
00:01:07,430 --> 00:01:09,680
‫Eh bien, jetons un coup d'œil

24
00:01:09,680 --> 00:01:14,680
‫à l'endroit où notre agrégation se produit réellement, donc c'est ici, oui, donc dans les

25
00:01:14,900 --> 00:01:19,270
‫étapes de la tournée, et donc ce que nous pourrions faire ici, dans

26
00:01:19,270 --> 00:01:22,640
‫cet état de correspondance, exclure simplement les tournées secrètes qui

27
00:01:22,640 --> 00:01:24,520
‫sont vraies, n'est-ce pas ?

28
00:01:24,520 --> 00:01:26,740
‫Ce serait donc assez facile à

29
00:01:26,740 --> 00:01:29,080
‫ajouter ici, mais nous devrions ensuite

30
00:01:29,080 --> 00:01:32,080
‫ajouter la même chose ici dans l'autre agrégation

31
00:01:32,080 --> 00:01:34,680
‫que nous avons, et si nous avions

32
00:01:34,680 --> 00:01:37,860
‫encore plus d'agrégations, nous devrions alors ajouter cela dans

33
00:01:37,860 --> 00:01:40,560
‫chacun d'eux et c'est bien sûr pas

34
00:01:40,560 --> 00:01:44,010
‫une bonne idée, car par exemple nous pourrions oublier de

35
00:01:44,010 --> 00:01:48,820
‫le faire et c'est aussi juste du code répétitif et donc excluons-le simplement au

36
00:01:48,820 --> 00:01:53,280
‫niveau du modèle, d'accord donc ajoutons un middleware d'agrégation ici en commençant

37
00:01:54,470 --> 00:01:55,893
‫par un commentaire.

38
00:01:59,450 --> 00:02:03,970
‫Donc middleware d'agrégation et comme avant,

39
00:02:05,070 --> 00:02:10,040
‫nous avons tourSchema. pre, nous voulons donc que cela se

40
00:02:10,040 --> 00:02:12,110
‫produise avant que l'agrégation ne

41
00:02:13,060 --> 00:02:16,573
‫soit réellement exécutée et nous utilisons donc ici le hook d'agrégation.

42
00:02:18,230 --> 00:02:22,047
‫D'accord, puis notre fonction qui accepte à

43
00:02:22,047 --> 00:02:26,332
‫nouveau la fonction suivante, appelant ainsi le prochain middleware.

44
00:02:26,332 --> 00:02:31,332
‫D'accord, commençons donc par jeter un œil à ceci, alors

45
00:02:32,530 --> 00:02:37,113
‫rappelez-vous qu'ici dans le middleware de requête, cet objet

46
00:02:37,113 --> 00:02:40,283
‫pointe vers la requête actuelle.

47
00:02:41,130 --> 00:02:44,590
‫Ensuite, ici, dans le middleware de document, cet

48
00:02:44,590 --> 00:02:46,850
‫objet pointe vers le

49
00:02:46,850 --> 00:02:50,330
‫document actuel, et donc ici, dans le middleware

50
00:02:50,330 --> 00:02:53,880
‫d'agrégation, cela va pointer vers l'objet d'agrégation actuel.

51
00:02:53,880 --> 00:02:56,764
‫D'accord, jetons un coup d'œil à cela dans

52
00:02:56,764 --> 00:03:00,113
‫la console, mais avant cela, permettez-moi de supprimer ce journal ici.

53
00:03:01,590 --> 00:03:05,890
‫D'accord, sauvegardez-le, exécutez cette agrégation ici et cela prend beaucoup

54
00:03:08,520 --> 00:03:12,520
‫de temps, alors annulons-le et revenons en arrière et

55
00:03:13,750 --> 00:03:16,580
‫c'est probablement parce que nous n'appelons pas

56
00:03:16,580 --> 00:03:21,460
‫ensuite ici, et donc comme nous le savons déjà, nous sommes bloqués

57
00:03:21,460 --> 00:03:23,580
‫dans la fonction middleware

58
00:03:23,580 --> 00:03:26,340
‫et donc ce n'est pas bon.

59
00:03:26,340 --> 00:03:29,063
‫Alors essayons à nouveau maintenant, envoyez, et

60
00:03:30,120 --> 00:03:33,490
‫oui, alors maintenant nous sommes de retour et

61
00:03:33,490 --> 00:03:35,470
‫regardons maintenant l'objet d'agrégation.

62
00:03:35,470 --> 00:03:37,700
‫D'accord, il y a beaucoup

63
00:03:39,980 --> 00:03:43,800
‫de choses ici, donc ce n'est pas vraiment intéressant ici et

64
00:03:44,950 --> 00:03:48,330
‫je ne peux pas vraiment trouver ce que j'essaie de

65
00:03:48,330 --> 00:03:53,330
‫vous montrer ici et ajoutons simplement ceci. pipeline d'accord parce que ce que

66
00:03:53,450 --> 00:03:57,140
‫je voulais vraiment vous montrer, c'est juste l'objet pipeline.

67
00:03:57,140 --> 00:04:00,620
‫D'accord, et en fait c'est un pipeline comme celui-ci donc c'est

68
00:04:00,620 --> 00:04:03,053
‫en fait une fonction, une méthode.

69
00:04:04,970 --> 00:04:06,593
‫Alors clarifions la console ici.

70
00:04:07,820 --> 00:04:12,820
‫Essayez à nouveau, et nous obtenons donc ici le pipeline d'agrégation, et c'est

71
00:04:14,350 --> 00:04:17,620
‫donc simplement le tableau que nous avons transmis

72
00:04:17,620 --> 00:04:19,770
‫à la fonction d'agrégation auparavant.

73
00:04:19,770 --> 00:04:23,040
‫Bon, alors jetons un coup d'œil et

74
00:04:23,040 --> 00:04:26,400
‫nous avons donc ici ce tableau, celui-ci pas celui-ci.

75
00:04:26,400 --> 00:04:28,200
‫Nous avons donc le match

76
00:04:28,200 --> 00:04:30,910
‫à grouper puis le tri donc si nous jetons un

77
00:04:30,910 --> 00:04:34,470
‫coup d'œil ici à la console nous avons bien notre match avec la

78
00:04:34,470 --> 00:04:37,320
‫moyenne des notes que nous avons du groupe puis trions.

79
00:04:37,320 --> 00:04:41,020
‫C'est donc exactement le pipeline que nous avons spécifié auparavant, et

80
00:04:41,020 --> 00:04:44,570
‫donc maintenant, afin de filtrer les visites secrètes, tout ce que

81
00:04:44,570 --> 00:04:47,970
‫nous avons à faire est d'ajouter une autre étape de

82
00:04:47,970 --> 00:04:50,700
‫correspondance juste au début de ce tableau

83
00:04:50,700 --> 00:04:53,713
‫de pipeline, à droite et alors faisons exactement cela.

84
00:04:55,029 --> 00:04:58,040
‫Faisons-le ici avant ce

85
00:04:58,040 --> 00:05:03,040
‫journal, donc ceci. pipeline et rappelez-vous qu'il s'agit d'un tableau et

86
00:05:03,890 --> 00:05:06,130
‫comment ajouter un élément au début d'un

87
00:05:06,130 --> 00:05:06,963
‫tableau ?

88
00:05:08,262 --> 00:05:11,510
‫Nous utilisons unshift et c'est donc une méthode JavaScript standard

89
00:05:11,510 --> 00:05:15,340
‫pour les tableaux d'accord, nous avons également shift à ajouter à la

90
00:05:15,340 --> 00:05:18,470
‫fin du tableau et unshift au début du tableau, et

91
00:05:18,470 --> 00:05:21,690
‫donc encore une fois ce que nous voulons ajouter ici

92
00:05:21,690 --> 00:05:25,490
‫maintenant est d'ajouter juste une autre étape, si semblable à ce que

93
00:05:25,490 --> 00:05:26,803
‫nous avons ici-bas.

94
00:05:29,690 --> 00:05:34,690
‫Donc match et ensuite secretTour, pas égal à vrai.

95
00:05:40,460 --> 00:05:45,340
‫Faites une sauvegarde, et donc ce morceau de code ici est exactement ce

96
00:05:45,340 --> 00:05:48,330
‫que nous avons ici, n'est-ce pas ?

97
00:05:48,330 --> 00:05:51,220
‫Supprimer de la sortie tous les documents

98
00:05:51,220 --> 00:05:55,260
‫pour lesquels secretTour est défini sur true, n'est-ce pas ?

99
00:05:55,260 --> 00:06:00,160
‫Donc, si vous faites une sauvegarde maintenant, alors vérifions cela, et rappelez-vous que nous

100
00:06:00,160 --> 00:06:03,250
‫avons maintenant 11 tournées, quatre, quatre et trois, alors

101
00:06:03,250 --> 00:06:06,780
‫vérifions le résultat après et donc maintenant, en effet, l'une

102
00:06:06,780 --> 00:06:10,340
‫des vôtres difficiles est partie, donc nous ne faisons que

103
00:06:10,340 --> 00:06:13,460
‫maintenant avons trois circuits difficiles, ce qui signifie que

104
00:06:13,460 --> 00:06:15,930
‫nous n'en avons plus que 10.

105
00:06:15,930 --> 00:06:20,260
‫D'accord et en fait, nous pouvons confirmer que notre tournée

106
00:06:20,260 --> 00:06:24,630
‫super secrète était une tournée difficile, d'accord et c'est maintenant terminé

107
00:06:24,630 --> 00:06:27,700
‫et nos résultats ne concernent plus

108
00:06:27,700 --> 00:06:30,800
‫que les tournées non secrètes régulières, d'accord ?

109
00:06:30,800 --> 00:06:34,670
‫Et nous pouvons à nouveau jeter un œil à notre pipeline d'agrégation

110
00:06:34,670 --> 00:06:38,640
‫maintenant et ici, vous voyez que nous avons maintenant ces deux étapes correspondantes.

111
00:06:38,640 --> 00:06:41,150
‫Génial et comme je l'ai mentionné précédemment,

112
00:06:41,150 --> 00:06:45,050
‫répéter ces étapes ne pose aucun problème, nous pouvons avoir autant

113
00:06:45,050 --> 00:06:49,920
‫d'étapes de match que nous le souhaitons, d'accord et c'est tout pour le middleware d'agrégation.

114
00:06:49,920 --> 00:06:53,740
‫Je ne vais pas inclure de code postal ici pour un middleware qui

115
00:06:53,740 --> 00:06:56,290
‫n'est pas vraiment nécessaire d'accord, et je ne vais

116
00:06:56,290 --> 00:06:59,050
‫pas non plus parler de middleware modèle ici parce

117
00:06:59,050 --> 00:07:01,570
‫que ce n'est vraiment pas si important.

118
00:07:01,570 --> 00:07:04,750
‫D'accord, donc le middleware est un truc vraiment cool et

119
00:07:04,750 --> 00:07:08,180
‫important que nous pouvons ajouter à nos modèles, et il y

120
00:07:08,180 --> 00:07:10,560
‫a en effet d'autres trucs sympas que

121
00:07:10,560 --> 00:07:13,430
‫nous pouvons faire avec les modèles, par exemple implémenter

122
00:07:13,430 --> 00:07:16,690
‫des méthodes d'instance qui sont des méthodes qui seront disponibles

123
00:07:16,690 --> 00:07:19,220
‫sur tous les documents après avoir été interrogé,

124
00:07:19,220 --> 00:07:21,410
‫et cela peut encore être très pratique,

125
00:07:21,410 --> 00:07:23,402
‫et nous le ferons plus

126
00:07:23,402 --> 00:07:25,570
‫tard dans la section d'authentification, d'accord.

127
00:07:25,570 --> 00:07:27,940
‫Donc je vais laisser ça un peu plus

128
00:07:27,940 --> 00:07:30,110
‫tard, maintenant ce que nous allons faire

129
00:07:30,110 --> 00:07:34,170
‫dans cette section juste pour finir est d'ajouter en fait une validation, d'accord et

130
00:07:34,170 --> 00:07:37,070
‫donc dans les deux prochaines vidéos, nous allons en parler.

