﻿1
00:00:01,100 --> 00:00:02,450
‫Narrateur : Bon retour.

2
00:00:02,450 --> 00:00:04,570
‫Dans cette vidéo et

3
00:00:04,570 --> 00:00:06,820
‫la suivante, je souhaite vous

4
00:00:06,820 --> 00:00:10,680
‫présenter le pipeline d'agrégation MongoDB, qui est un framework

5
00:00:10,680 --> 00:00:13,750
‫MongoDB extrêmement puissant et extrêmement utile pour

6
00:00:13,750 --> 00:00:15,433
‫l'agrégation de données.

7
00:00:17,180 --> 00:00:19,020
‫Et l'idée est que

8
00:00:19,020 --> 00:00:21,900
‫nous définissons essentiellement un pipeline par lequel

9
00:00:21,900 --> 00:00:24,070
‫tous les documents d'une certaine

10
00:00:24,070 --> 00:00:26,470
‫collection passent par où ils sont

11
00:00:26,470 --> 00:00:30,870
‫traités étape par étape afin de les transformer en résultats agrégés.

12
00:00:30,870 --> 00:00:33,660
‫Par exemple, nous pouvons utiliser le pipeline d'agrégation

13
00:00:33,660 --> 00:00:36,190
‫pour calculer des moyennes ou calculer des

14
00:00:36,190 --> 00:00:39,010
‫valeurs minimales et maximales ou nous pouvons même

15
00:00:39,010 --> 00:00:41,380
‫calculer des distances, et nous pouvons vraiment

16
00:00:41,380 --> 00:00:43,590
‫faire toutes sortes de choses.

17
00:00:43,590 --> 00:00:46,220
‫C'est vraiment incroyable à quel point

18
00:00:46,220 --> 00:00:48,440
‫ce pipeline d'agrégation est puissant.

19
00:00:48,440 --> 00:00:50,530
‫D'accord, mais assez parlé.

20
00:00:50,530 --> 00:00:53,900
‫Commençons maintenant à utiliser le pipeline d'agrégation et je

21
00:00:53,900 --> 00:00:57,122
‫vais créer une nouvelle fonction d'en-tête ici, car

22
00:00:57,122 --> 00:01:00,290
‫plus tard, nous définirons une nouvelle route, puis

23
00:01:00,290 --> 00:01:02,583
‫utiliserons cette fonction pour cela.

24
00:01:03,610 --> 00:01:06,093
‫Mais cette nouvelle route, je vais la créer plus tard.

25
00:01:07,495 --> 00:01:09,720
‫Je veux donc créer une

26
00:01:09,720 --> 00:01:13,756
‫fonction ici qui va calculer quelques statistiques sur nos tournées.

27
00:01:13,756 --> 00:01:16,987
‫Je vais donc appeler celui-ci getTourStats.

28
00:01:19,070 --> 00:01:21,860
‫D'accord, donc Stats pour les statistiques, et

29
00:01:21,860 --> 00:01:23,770
‫ce sera une fonction

30
00:01:23,770 --> 00:01:28,770
‫asynchrone et donc un code vs maintenant automatiquement pré-rempli à partir de cela.

31
00:01:29,140 --> 00:01:33,923
‫Très bien, créons ou essayons le bloc catch ici.

32
00:01:38,010 --> 00:01:41,970
‫En fait, je vais copier cela à partir

33
00:01:41,970 --> 00:01:45,600
‫d'ici, et maintenant ici, je vais créer

34
00:01:45,600 --> 00:01:47,703
‫une variable appelée stats.

35
00:01:50,120 --> 00:01:54,600
‫Maintenant, le pipeline d'agrégation est vraiment une fonctionnalité MongoDB.

36
00:01:54,600 --> 00:01:57,330
‫Mais Mongoose, bien sûr, nous y donne accès,

37
00:01:57,330 --> 00:02:01,210
‫afin que nous puissions l'utiliser dans le pilote Mongoose, n'est-ce pas ?

38
00:02:01,210 --> 00:02:04,070
‫Donc, en utilisant notre modèle de tournée

39
00:02:04,070 --> 00:02:07,217
‫pour accéder à la collection de tournées, nous

40
00:02:07,217 --> 00:02:10,053
‫disons tournée. agrégat.

41
00:02:12,580 --> 00:02:15,250
‫Et donc le pipeline d'agrégation est un

42
00:02:15,250 --> 00:02:18,847
‫peu comme une requête régulière et donc en utilisant le

43
00:02:18,847 --> 00:02:22,512
‫pipeline d'agrégation c'est un peu comme faire une requête régulière.

44
00:02:22,512 --> 00:02:25,550
‫La différence ici est que dans les agrégations,

45
00:02:25,550 --> 00:02:28,620
‫comme je l'ai déjà mentionné, nous pouvons manipuler

46
00:02:28,620 --> 00:02:30,750
‫les données en plusieurs étapes

47
00:02:30,750 --> 00:02:33,400
‫différentes et définissons donc maintenant ces étapes.

48
00:02:33,400 --> 00:02:37,093
‫Et pour cela, on passe dans une panoplie de soi-disant étapes.

49
00:02:38,150 --> 00:02:41,050
‫Donc on passe dans un tableau, et puis ici

50
00:02:41,050 --> 00:02:43,110
‫on aura alors beaucoup d'étapes.

51
00:02:43,110 --> 00:02:46,540
‫Et à nouveau, les documents passent ensuite par ces étapes

52
00:02:46,540 --> 00:02:50,350
‫une par une, étape par étape dans la séquence de définition

53
00:02:50,350 --> 00:02:52,462
‫telle que nous la définissons ici.

54
00:02:52,462 --> 00:02:54,860
‫Ainsi, chacun des éléments de ce

55
00:02:54,860 --> 00:02:56,970
‫tableau sera l'une des étapes.

56
00:02:56,970 --> 00:02:59,470
‫Et il y a une tonne d'étapes différentes parmi

57
00:02:59,470 --> 00:03:02,110
‫lesquelles nous pouvons choisir, mais je vais juste vous

58
00:03:02,110 --> 00:03:04,200
‫dire les plus courantes dans cette conférence

59
00:03:04,200 --> 00:03:06,070
‫et aussi dans la suivante.

60
00:03:06,070 --> 00:03:08,400
‫Mais de toute façon, je veux maintenant prendre

61
00:03:08,400 --> 00:03:11,500
‫une minute et jeter un coup d'œil à la documentation de MongoDB parce

62
00:03:11,500 --> 00:03:13,853
‫que je pense que nous ne l'avons pas encore fait.

63
00:03:17,285 --> 00:03:20,840
‫Donc MongoDB et nous connaissons déjà ce site.

64
00:03:20,840 --> 00:03:24,460
‫Donc, sur notre site Web MongoDB, nous allons

65
00:03:24,460 --> 00:03:27,840
‫ici pour apprendre, puis la documentation, puis

66
00:03:27,840 --> 00:03:32,380
‫ici, nous sélectionnons le manuel MongoDB et cette documentation est énorme.

67
00:03:32,380 --> 00:03:34,480
‫C'est vraiment, il y a beaucoup de

68
00:03:34,480 --> 00:03:36,450
‫choses ici et si vous

69
00:03:36,450 --> 00:03:39,623
‫deviez tout traverser, eh bien, vous deviendriez vraiment un maître MongoDB.

70
00:03:40,600 --> 00:03:44,010
‫Cela vous donne donc une belle introduction à MongoDB,

71
00:03:44,010 --> 00:03:45,760
‫vous avez l'installation ici.

72
00:03:45,760 --> 00:03:49,610
‫Vous avez les opérations CRUD, donc un bon aperçu de

73
00:03:49,610 --> 00:03:51,340
‫beaucoup de choses que

74
00:03:51,340 --> 00:03:54,610
‫nous avons déjà apprises auparavant, n'est-ce pas ?

75
00:03:54,610 --> 00:03:56,960
‫Ensuite, vous avez des trucs sur l'agrégation

76
00:03:57,800 --> 00:04:00,390
‫et en particulier, le pipeline d'agrégation dont nous

77
00:04:00,390 --> 00:04:02,320
‫allons parler maintenant, mais ce

78
00:04:02,320 --> 00:04:04,730
‫que je veux vraiment vous montrer ici, c'est

79
00:04:04,730 --> 00:04:08,210
‫en fait cette référence que nous avons en bas parce que

80
00:04:08,210 --> 00:04:10,750
‫dans la référence que nous avons ici pour

81
00:04:10,750 --> 00:04:12,880
‫exemple les opérateurs et c'est là que

82
00:04:12,880 --> 00:04:16,570
‫nous avons beaucoup de choses importantes que nous utilisons tout le temps.

83
00:04:16,570 --> 00:04:18,430
‫Jetons donc un coup d'œil ici

84
00:04:18,430 --> 00:04:22,200
‫aux opérateurs de requête, par exemple et ici, vous voyez, nous avons en fait

85
00:04:22,200 --> 00:04:24,210
‫ces opérateurs que nous avons déjà utilisés.

86
00:04:24,210 --> 00:04:26,970
‫Par exemple, supérieur ou égal, ou inférieur et

87
00:04:26,970 --> 00:04:29,560
‫égal, mais si un jour, dans

88
00:04:29,560 --> 00:04:32,200
‫vos propres applications, vous avez besoin d'un autre

89
00:04:32,200 --> 00:04:35,170
‫opérateur, eh bien, vous savez maintenant où les trouver.

90
00:04:35,170 --> 00:04:37,570
‫Maintenant, bien sûr, il est également toujours très

91
00:04:37,570 --> 00:04:40,370
‫utile de faire une recherche rapide sur Google, probablement

92
00:04:40,370 --> 00:04:43,490
‫de trouver un article sur le débordement de la pile à

93
00:04:43,490 --> 00:04:45,687
‫ce sujet, mais croyez-moi, il est

94
00:04:45,687 --> 00:04:49,790
‫souvent plus facile et plus rapide de simplement sauter rapidement dans la documentation et

95
00:04:49,790 --> 00:04:52,763
‫de rechercher rapidement tout ce que vous ' re besoin.

96
00:04:53,700 --> 00:04:56,350
‫Vous avez juste besoin de savoir comment fonctionne

97
00:04:56,350 --> 00:04:59,050
‫la documentation et une fois que vous le savez, il

98
00:04:59,050 --> 00:05:02,473
‫vous sera alors assez facile de trouver ce que vous cherchez, d'accord ?

99
00:05:03,400 --> 00:05:05,570
‫Ici, vous avez également quelques opérateurs

100
00:05:05,570 --> 00:05:08,920
‫logiques par exemple, l'opérateur OU que nous avons déjà utilisé.

101
00:05:08,920 --> 00:05:13,920
‫Encore une fois, vraiment beaucoup de choses, des opérateurs géospatiaux et nous en

102
00:05:14,120 --> 00:05:16,790
‫utiliserons en fait, plus tard, et

103
00:05:16,790 --> 00:05:19,040
‫oui, vraiment beaucoup de choses.

104
00:05:19,040 --> 00:05:22,280
‫Ensuite, ce que je voulais vous montrer après cette conférence en

105
00:05:22,280 --> 00:05:24,793
‫fait, ce sont les étapes du pipeline d'agrégation.

106
00:05:26,680 --> 00:05:29,140
‫Donc ici vous en avez beaucoup et

107
00:05:29,140 --> 00:05:32,090
‫ce que nous allons utiliser dans cette conférence

108
00:05:32,090 --> 00:05:35,410
‫ici, c'est le match, par exemple et le groupe,

109
00:05:35,410 --> 00:05:36,820
‫où est-ce ?

110
00:05:36,820 --> 00:05:39,670
‫Oui, c'est un groupe très important, et comme je

111
00:05:39,670 --> 00:05:41,660
‫l'ai mentionné, je vais vous

112
00:05:41,660 --> 00:05:44,920
‫montrer les plus importants de cette conférence et de la suivante.

113
00:05:44,920 --> 00:05:48,270
‫Mais encore une fois, si dans certains cas vous avez besoin

114
00:05:48,270 --> 00:05:51,110
‫d'autre chose, alors allez-y, venez ici à cette documentation

115
00:05:51,110 --> 00:05:53,920
‫et vous trouverez ce que vous cherchez.

116
00:05:53,920 --> 00:05:54,753
‫D'accord?

117
00:05:55,740 --> 00:05:58,630
‫Quoi qu'il en soit, apprenons maintenant comment nous pouvons réellement

118
00:05:58,630 --> 00:06:00,940
‫définir l'une de ces étapes, d'accord ?

119
00:06:00,940 --> 00:06:03,170
‫Et je vais commencer par le match.

120
00:06:03,170 --> 00:06:05,330
‫Et la correspondance consiste essentiellement

121
00:06:05,330 --> 00:06:07,890
‫à sélectionner ou à filtrer certains documents.

122
00:06:07,890 --> 00:06:09,510
‫Et donc c'est très simple.

123
00:06:09,510 --> 00:06:13,210
‫C'est vraiment comme un objet filtre dans MongoDB, comme

124
00:06:13,210 --> 00:06:16,380
‫nous l'avons utilisé tant de fois.

125
00:06:16,380 --> 00:06:19,340
‫Donc chacune des étapes est un

126
00:06:19,340 --> 00:06:22,750
‫objet et puis voici le nom de l'étape.

127
00:06:22,750 --> 00:06:26,300
‫Donc celui-ci est l'étape du match, d'accord ?

128
00:06:26,300 --> 00:06:29,603
‫Et comme je l'ai mentionné, c'est vraiment juste une requête.

129
00:06:30,730 --> 00:06:33,570
‫Et donc disons que pour commencer, nous voulons uniquement sélectionner

130
00:06:33,570 --> 00:06:35,200
‫des documents qui ont une

131
00:06:35,200 --> 00:06:39,630
‫note moyenne supérieure ou égale à 4. 5.

132
00:06:39,630 --> 00:06:41,110
‫Alors pouvez-vous faire ça ?

133
00:06:41,110 --> 00:06:43,560
‫Je vais juste vous donner une seconde pour le faire ici.

134
00:06:44,730 --> 00:06:46,123
‫Alors j'espère que tu l'as fait.

135
00:06:47,090 --> 00:06:50,440
‫La moyenne des notes doit donc être supérieure ou

136
00:06:52,240 --> 00:06:55,383
‫égale à 4. 5.

137
00:06:56,460 --> 00:06:59,260
‫Et voilà, c'est la première étape.

138
00:06:59,260 --> 00:07:03,500
‫Et généralement, cette étape de match n'est qu'une étape préliminaire

139
00:07:03,500 --> 00:07:07,050
‫pour ensuite préparer les prochaines étapes à venir.

140
00:07:07,050 --> 00:07:10,173
‫Donc, le prochain est maintenant la phase de groupes.

141
00:07:13,000 --> 00:07:14,610
‫Donc groupe et

142
00:07:14,610 --> 00:07:17,840
‫là, nous devons toujours passer juste un autre objet.

143
00:07:17,840 --> 00:07:20,600
‫Cela semble donc un peu bizarre avec tous ces

144
00:07:20,600 --> 00:07:22,870
‫objets, mais, oui, vous l'avez déjà vu et

145
00:07:22,870 --> 00:07:24,780
‫MongoDB fonctionne de cette façon.

146
00:07:24,780 --> 00:07:28,293
‫Ce sont toujours des objets, à l'intérieur des objets, à l'intérieur des objets.

147
00:07:29,520 --> 00:07:32,690
‫Et ce groupe ici est l'endroit où la vraie magie

148
00:07:32,690 --> 00:07:34,520
‫opère car comme son

149
00:07:34,520 --> 00:07:36,870
‫nom l'indique, il nous permet de regrouper

150
00:07:36,870 --> 00:07:38,820
‫des documents, essentiellement à l'aide d'accumulateurs.

151
00:07:38,820 --> 00:07:40,600
‫Et un accumulateur est par

152
00:07:40,600 --> 00:07:42,850
‫exemple, même en train de calculer une moyenne.

153
00:07:42,850 --> 00:07:46,270
‫Donc, si nous avons cinq circuits, chacun d'eux a une

154
00:07:46,270 --> 00:07:50,250
‫note, nous pouvons alors calculer la note moyenne en utilisant le groupe.

155
00:07:50,250 --> 00:07:52,680
‫Et alors faisons exactement cela ici.

156
00:07:52,680 --> 00:07:55,190
‫Maintenant, la première chose, c'est que nous

157
00:07:55,190 --> 00:07:58,950
‫devons toujours spécifier l'identifiant car c'est là que nous allons spécifier

158
00:07:58,950 --> 00:08:00,803
‫ce que nous voulons regrouper.

159
00:08:02,420 --> 00:08:05,480
‫Pour l'instant, nous disons nul ici car nous voulons

160
00:08:05,480 --> 00:08:08,870
‫tout avoir dans un seul groupe afin de pouvoir calculer

161
00:08:08,870 --> 00:08:11,600
‫les statistiques de toutes les tournées ensemble et

162
00:08:11,600 --> 00:08:13,713
‫ne pas les séparer par groupes.

163
00:08:14,590 --> 00:08:18,250
‫Nous allons, un peu plus tard, grouper également par différentes choses,

164
00:08:18,250 --> 00:08:21,010
‫par exemple, nous pouvons regrouper par difficulté et

165
00:08:21,010 --> 00:08:23,900
‫nous pouvons ensuite, par exemple, calculer la moyenne pour

166
00:08:23,900 --> 00:08:26,820
‫les circuits faciles, la moyenne pour les circuits moyens

167
00:08:26,820 --> 00:08:29,373
‫et la moyenne pour les circuits difficiles.

168
00:08:29,373 --> 00:08:32,720
‫Encore une fois, nous pouvons regrouper par l'un de nos champs

169
00:08:32,720 --> 00:08:35,750
‫et ce champ, nous allons le spécifier ici, mais pour

170
00:08:35,750 --> 00:08:39,000
‫l'instant, comme je l'ai dit, nous voulons calculer ces moyennes pour

171
00:08:39,000 --> 00:08:41,803
‫toutes les tournées ensemble dans un grand groupe.

172
00:08:42,865 --> 00:08:46,990
‫Donc, dans ce cas, nous disons _id et le définissons sur null.

173
00:08:47,994 --> 00:08:51,600
‫Calculons maintenant la note moyenne.

174
00:08:51,600 --> 00:08:54,423
‫Pour ce faire, nous spécifions simplement un

175
00:08:55,320 --> 00:08:58,713
‫nouveau champ, appelons-le simplement la note moyenne, donc

176
00:09:01,080 --> 00:09:03,480
‫comme ça, et ce sera

177
00:09:05,620 --> 00:09:07,160
‫bien la moyenne,

178
00:09:07,160 --> 00:09:11,560
‫qui est encore un autre opérateur MongoDB, donc celui-ci ici.

179
00:09:11,560 --> 00:09:14,233
‫Vous le trouverez dans la référence si vous le recherchez.

180
00:09:15,149 --> 00:09:17,800
‫Il s'agit donc d'un opérateur mathématique calculant

181
00:09:17,800 --> 00:09:20,520
‫la moyenne et maintenant le nom du champ.

182
00:09:20,520 --> 00:09:23,530
‫Et encore une fois, je sais que cela va sembler

183
00:09:23,530 --> 00:09:26,390
‫très étrange, mais afin de spécifier le champ à partir

184
00:09:26,390 --> 00:09:29,110
‫duquel nous voulons calculer la moyenne, nous devons utiliser

185
00:09:29,110 --> 00:09:31,900
‫le signe dollar, mais entre guillemets ici et puis

186
00:09:31,900 --> 00:09:33,583
‫le nom du champ.

187
00:09:34,560 --> 00:09:36,803
‫Donc, les notes sont moyennes dans ce cas.

188
00:09:39,316 --> 00:09:41,573
‫Et calculons aussi le prix moyen.

189
00:09:43,500 --> 00:09:47,143
‫Donc le prix moyen, et encore une fois, s'est trompé ici,

190
00:09:48,200 --> 00:09:49,300
‫et donc

191
00:09:50,870 --> 00:09:52,970
‫la moyenne et encore une fois, le

192
00:09:52,970 --> 00:09:55,170
‫nom du champ et entre guillemets et

193
00:09:55,170 --> 00:09:56,470
‫avec ce signe dollar.

194
00:09:58,800 --> 00:10:00,890
‫D'accord, donc ça a l'air un peu

195
00:10:00,890 --> 00:10:01,900
‫bizarre encore, mais

196
00:10:01,900 --> 00:10:04,510
‫c'est juste la façon dont fonctionne le pipeline d'agrégation.

197
00:10:04,510 --> 00:10:06,300
‫Nous avons donc le prix moyen.

198
00:10:06,300 --> 00:10:08,880
‫Calculons en fait aussi le prix minimum,

199
00:10:08,880 --> 00:10:12,560
‫donc le plus petit prix, et le plus grand prix.

200
00:10:12,560 --> 00:10:13,620
‫Donc minPrice

201
00:10:15,439 --> 00:10:19,360
‫et à partir de maintenant, tout va se ressembler,

202
00:10:19,360 --> 00:10:21,190
‫donc maintenant nous utilisons

203
00:10:22,200 --> 00:10:26,603
‫l'opérateur min, puis à nouveau le nom du champ comme celui-ci.

204
00:10:29,783 --> 00:10:32,530
‫Et une virgule ici et dupliquons maintenant simplement

205
00:10:32,530 --> 00:10:35,053
‫celle-ci afin de calculer le prix maximum.

206
00:10:37,910 --> 00:10:40,310
‫Et maintenant, jetons un coup d'œil à ce que nous

207
00:10:40,310 --> 00:10:42,160
‫avons déjà obtenu à ce stade.

208
00:10:44,240 --> 00:10:47,430
‫Nous devons donc maintenant envoyer cette réponse, et

209
00:10:47,430 --> 00:10:49,250
‫encore une fois, je

210
00:10:49,250 --> 00:10:53,513
‫vais juste aller chercher certaines de ces réponses déjà faites ici.

211
00:10:59,154 --> 00:11:01,853
‫Donc, les données que nous voulons envoyer s'appellent des statistiques.

212
00:11:06,740 --> 00:11:09,610
‫Et maintenant, tout ce que nous avons à faire est d'ajouter un

213
00:11:09,610 --> 00:11:12,390
‫nouvel itinéraire ici dans nos itinéraires de tournée et encore une

214
00:11:12,390 --> 00:11:14,543
‫fois, je vais éditer ici, tout en haut.

215
00:11:16,368 --> 00:11:18,690
‫Donc routeur. route /gettour,

216
00:11:21,597 --> 00:11:26,597
‫ou en fait juste tour-stats, juste comme ça parce que le

217
00:11:29,460 --> 00:11:33,730
‫get est déjà défini dans la méthode HTTP.

218
00:11:33,730 --> 00:11:37,090
‫Donc pas besoin de le répéter dans le nom.

219
00:11:37,090 --> 00:11:38,640
‫Donc tourController. getTourStats.

220
00:11:42,268 --> 00:11:46,707
‫Donnez-lui un coffre-fort et testons-le maintenant.

221
00:11:48,270 --> 00:11:52,710
‫Je suis donc vraiment excitant de le tester maintenant, en fait de voir

222
00:11:52,710 --> 00:11:57,710
‫si cela fonctionne parce que, encore une fois, c'est vraiment un outil incroyable et

223
00:11:57,720 --> 00:11:59,370
‫vraiment puissant qui vous

224
00:11:59,370 --> 00:12:01,503
‫permet de faire tellement de choses.

225
00:12:03,130 --> 00:12:05,280
‫Donc tour-stats, envoyez-le et

226
00:12:06,290 --> 00:12:09,000
‫ce n'est pas vraiment le résultat

227
00:12:09,000 --> 00:12:12,600
‫que nous attendions, donc c'est juste le pipeline que

228
00:12:12,600 --> 00:12:15,750
‫nous avons défini, mais je sais déjà pourquoi.

229
00:12:15,750 --> 00:12:18,950
‫Nous n'avons donc pas attendu le résultat.

230
00:12:18,950 --> 00:12:21,410
‫Donc, en gros, tout comme

231
00:12:21,410 --> 00:12:24,453
‫une requête normale va retourner un objet agrégé.

232
00:12:25,857 --> 00:12:29,770
‫Donc . find va retourner une requête, et . l'agrégat va

233
00:12:29,770 --> 00:12:32,330
‫retourner un objet agrégé.

234
00:12:32,330 --> 00:12:34,180
‫Et puis seulement quand

235
00:12:34,180 --> 00:12:36,940
‫on l'attend, il revient effectivement avec le résultat.

236
00:12:36,940 --> 00:12:39,850
‫C'est donc aussi pourquoi nous avons défini cette fonction ici comme

237
00:12:39,850 --> 00:12:42,640
‫une fonction asynchrone, afin que nous puissions ensuite utiliser wait

238
00:12:42,640 --> 00:12:44,953
‫là-dedans et c'est donc le bon endroit.

239
00:12:45,860 --> 00:12:47,950
‫Essayons à nouveau.

240
00:12:47,950 --> 00:12:49,850
‫Et c'est reparti!

241
00:12:49,850 --> 00:12:51,250
‫Tellement bon!

242
00:12:51,250 --> 00:12:54,910
‫Nous avons la note moyenne de tous nos circuits, nous avons

243
00:12:54,910 --> 00:12:56,720
‫le prix moyen que

244
00:12:56,720 --> 00:13:01,720
‫vous voyez est de 1563 et puis le minimum et le maximum, non ?

245
00:13:01,910 --> 00:13:04,210
‫Et à partir de nos données, nous pouvons

246
00:13:04,210 --> 00:13:06,410
‫effectivement confirmer que cela est vrai.

247
00:13:06,410 --> 00:13:07,770
‫Tellement bon!

248
00:13:07,770 --> 00:13:09,770
‫Vraiment, vraiment super.

249
00:13:09,770 --> 00:13:11,950
‫Maintenant, une autre chose que je

250
00:13:11,950 --> 00:13:14,450
‫veux faire ici est de calculer le

251
00:13:14,450 --> 00:13:18,730
‫nombre total d'évaluations que nous avons ainsi que le nombre total de tournées.

252
00:13:18,730 --> 00:13:20,700
‫Nous avons

253
00:13:20,700 --> 00:13:23,090
‫donc la note moyenne

254
00:13:23,090 --> 00:13:27,323
‫ici et faisons-le avant, donc numRatings, comme

255
00:13:28,850 --> 00:13:31,950
‫celui-ci et vous pouvez probablement

256
00:13:31,950 --> 00:13:36,950
‫deviner que celui-ci s'appelle somme, puis notesAverage, ou en

257
00:13:38,500 --> 00:13:43,500
‫fait pas notesAverage, mais notesQuantity, n'est-ce pas ?

258
00:13:43,610 --> 00:13:46,480
‫C'est donc là que le nombre d'évaluations est

259
00:13:46,480 --> 00:13:49,354
‫stocké et donc le nombre d'évaluations, le total, sera

260
00:13:49,354 --> 00:13:51,863
‫la somme de tout cela ensemble.

261
00:13:52,840 --> 00:13:55,090
‫Et maintenant, le dernier, c'est le nombre de tournées

262
00:13:56,100 --> 00:13:57,880
‫et celle-là est un peu plus

263
00:13:57,880 --> 00:14:00,660
‫compliquée, et c'est donc une bonne chose à vous montrer ici.

264
00:14:00,660 --> 00:14:04,570
‫Donc, nous voulons toujours additionner, donc tout additionner, en

265
00:14:04,570 --> 00:14:07,960
‫gros, donc nous utilisons toujours la somme,

266
00:14:07,960 --> 00:14:10,340
‫mais qu'allons-nous additionner ?

267
00:14:10,340 --> 00:14:13,493
‫Eh bien, en gros, nous en ajoutons un pour chaque

268
00:14:14,443 --> 00:14:17,380
‫document, et nous disons donc 1, et c'est tout.

269
00:14:17,380 --> 00:14:19,610
‫Donc, fondamentalement, pour chacun des

270
00:14:19,610 --> 00:14:22,020
‫documents qui passeront par ce pipeline,

271
00:14:22,020 --> 00:14:24,960
‫un sera ajouté à ce compteur numérique.

272
00:14:24,960 --> 00:14:29,430
‫Appelons cela numTours.

273
00:14:29,430 --> 00:14:33,763
‫Et donc, oui, testons-le maintenant, encore une fois.

274
00:14:36,350 --> 00:14:39,320
‫Et effectivement, nous avons nos neuf tournées et nous savons

275
00:14:39,320 --> 00:14:41,303
‫déjà que nous en avons neuf.

276
00:14:42,650 --> 00:14:46,820
‫Ce sont donc toutes les statistiques pour toutes les tournées ensemble, mais

277
00:14:46,820 --> 00:14:48,890
‫passons maintenant au niveau supérieur.

278
00:14:48,890 --> 00:14:52,450
‫Comme je l'ai dit précédemment, nous pouvons maintenant regrouper nos résultats

279
00:14:52,450 --> 00:14:53,790
‫pour différents domaines.

280
00:14:53,790 --> 00:14:56,870
‫Et commençons par la difficulté.

281
00:14:56,870 --> 00:14:59,830
‫Et donc c'est assez similaire à la spécification des champs

282
00:14:59,830 --> 00:15:01,990
‫là-bas qui est simplement le signe dollar,

283
00:15:01,990 --> 00:15:03,570
‫puis le nom du champ.

284
00:15:03,570 --> 00:15:07,303
‫Donc $difficulté, donnez-lui un coffre-fort et c'est tout.

285
00:15:08,350 --> 00:15:12,040
‫Envoyez-le ici, et nous avons maintenant toutes

286
00:15:12,040 --> 00:15:15,950
‫les statistiques définies pour chacune de ces trois difficultés.

287
00:15:15,950 --> 00:15:18,200
‫Alors c'est vraiment, vraiment incroyable.

288
00:15:18,200 --> 00:15:20,470
‫C'est donc la partie qui m'épate.

289
00:15:20,470 --> 00:15:22,170
‫C'est absolument fantastique.

290
00:15:22,170 --> 00:15:25,020
‫Je veux dire, vous pouvez commencer à voir toutes

291
00:15:25,020 --> 00:15:27,260
‫sortes de choses, toutes sortes de manipulations

292
00:15:27,260 --> 00:15:30,890
‫de données que vous pouvez faire en utilisant ce pipeline, n'est-ce pas ?

293
00:15:30,890 --> 00:15:33,360
‫Nous pouvons donc vraiment commencer à analyser des choses,

294
00:15:33,360 --> 00:15:36,170
‫par exemple, nous voyons que les circuits les plus faciles

295
00:15:36,170 --> 00:15:38,640
‫sont ceux qui obtiennent les notes les plus

296
00:15:38,640 --> 00:15:41,370
‫mauvaises avec un 4. 6, tandis que les circuits

297
00:15:41,370 --> 00:15:43,980
‫moyens sont ceux qui obtiennent les notes les plus élevées.

298
00:15:43,980 --> 00:15:46,750
‫On voit aussi que les circuits

299
00:15:46,750 --> 00:15:49,620
‫difficiles sont les plus chers avec un

300
00:15:49,620 --> 00:15:54,520
‫prix moyen de 1997, tandis que les plus faciles sont aussi les

301
00:15:54,520 --> 00:15:58,010
‫moins chers avec un prix de 1272, non ?

302
00:15:58,010 --> 00:15:59,910
‫On voit aussi que les

303
00:15:59,910 --> 00:16:01,880
‫circuits les plus faciles sont ceux qu'on

304
00:16:01,880 --> 00:16:05,400
‫a le plus, donc quatre faciles et seulement deux difficiles, non ?

305
00:16:05,400 --> 00:16:07,510
‫Nous pouvons donc utiliser cela,

306
00:16:07,510 --> 00:16:10,693
‫bien sûr, pour obtenir toutes sortes d'informations sur nos données.

307
00:16:12,350 --> 00:16:13,630
‫Commentons celui-ci

308
00:16:13,630 --> 00:16:16,583
‫ici et essayons-en un autre, par exemple,

309
00:16:17,560 --> 00:16:20,130
‫par notes, pourquoi pas, essayons

310
00:16:20,130 --> 00:16:22,773
‫simplement, voyons ce que nous obtenons.

311
00:16:24,450 --> 00:16:26,310
‫Ainsi, par exemple, nous avons deux circuits, donc en gros

312
00:16:26,310 --> 00:16:28,353
‫avec une note de 4. 5, nous avons

313
00:16:29,530 --> 00:16:32,963
‫deux tours avec 4. 7, un tour avec 4. 8, et

314
00:16:34,040 --> 00:16:37,077
‫trois tours avec 4. 9.

315
00:16:37,077 --> 00:16:39,870
‫Oh, et aussi ici, une tournée avec 4. 6, et donc

316
00:16:39,870 --> 00:16:42,320
‫par exemple, une idée que nous pouvons

317
00:16:42,320 --> 00:16:45,680
‫obtenir ici est que les circuits très chers avec

318
00:16:45,680 --> 00:16:49,103
‫ce prix moyen de 1997 obtiennent des notes extrêmement bonnes.

319
00:16:50,260 --> 00:16:55,260
‫Donc toutes sortes de choses, vraiment que nous pouvons faire ici.

320
00:16:55,360 --> 00:16:59,520
‫Débarrassons-nous de celui-ci, rajoutons celui-ci, et nous pouvons

321
00:16:59,520 --> 00:17:00,975
‫maintenant même

322
00:17:00,975 --> 00:17:03,180
‫faire quelques opérations avec celui-ci.

323
00:17:03,180 --> 00:17:08,180
‫Alors juste pour le plaisir, mettons cette difficulté en majuscule.

324
00:17:08,550 --> 00:17:12,370
‫Donc, bien sûr, ça va être un autre objet ici et

325
00:17:13,570 --> 00:17:15,810
‫puis ici devant se trouve l'opérateur.

326
00:17:15,810 --> 00:17:18,873
‫Et donc l'opérateur dans ce cas, s'appelle $toUpper.

327
00:17:21,150 --> 00:17:25,230
‫Alors juste, encore un autre opérateur MongoDB.

328
00:17:25,230 --> 00:17:30,140
‫Alors vérifiez-le, et maintenant il est écrit en majuscule.

329
00:17:30,140 --> 00:17:31,290
‫Super!

330
00:17:31,290 --> 00:17:34,650
‫Nous avons donc ici la phase de groupes qui est assez complète.

331
00:17:34,650 --> 00:17:38,180
‫Essayons donc un autre qui est une étape de tri.

332
00:17:38,180 --> 00:17:42,120
‫Donc un autre objet dans notre tableau pour encore une autre

333
00:17:43,250 --> 00:17:45,380
‫étape et celui-ci s'appelle sort.

334
00:17:45,380 --> 00:17:49,070
‫Alors triez et là-dedans, nous avons besoin d'un autre objet, et celui-ci

335
00:17:49,070 --> 00:17:52,190
‫s'est en quelque sorte auto-complété, je ne sais pas pourquoi,

336
00:17:52,190 --> 00:17:54,860
‫et donc ici, nous pouvons maintenant spécifier

337
00:17:54,860 --> 00:17:59,183
‫par quel champ nous voulons trier cela et utilisons en fait le prix moyen.

338
00:18:00,580 --> 00:18:03,610
‫Et maintenant, dans le tri, nous devons en fait utiliser les noms

339
00:18:03,610 --> 00:18:06,563
‫de champ que nous avons spécifiés ici dans le groupe.

340
00:18:07,520 --> 00:18:10,630
‫Nous ne pouvons plus utiliser les anciens noms car à ce stade,

341
00:18:10,630 --> 00:18:11,930
‫ils ont déjà disparu.

342
00:18:11,930 --> 00:18:13,610
‫Ils n'existent plus.

343
00:18:13,610 --> 00:18:16,400
‫Donc, à ce stade, dans le

344
00:18:16,400 --> 00:18:19,410
‫pipeline d'agrégation, nous avons vraiment déjà ces résultats.

345
00:18:19,410 --> 00:18:22,790
‫Ce sont donc maintenant nos documents essentiellement.

346
00:18:22,790 --> 00:18:25,960
‫Donc, si vous voulez trier par prix moyen, c'est

347
00:18:25,960 --> 00:18:28,943
‫le nom de champ que nous devons utiliser.

348
00:18:30,530 --> 00:18:33,070
‫On peut donc dire le prix moyen

349
00:18:33,070 --> 00:18:35,793
‫et ensuite on peut dire 1 pour l'ascendant.

350
00:18:37,680 --> 00:18:38,883
‫Alors essayons ça.

351
00:18:41,550 --> 00:18:43,070
‫Et oui, en effet.

352
00:18:43,070 --> 00:18:46,480
‫C'est le plus bas et c'est le plus élevé.

353
00:18:46,480 --> 00:18:47,820
‫Super!

354
00:18:47,820 --> 00:18:50,210
‫Alors on a fait plein de trucs.

355
00:18:50,210 --> 00:18:53,480
‫Permettez-moi de vous montrer que nous pouvons également répéter les étapes.

356
00:18:53,480 --> 00:18:55,710
‫Faisons donc un autre match ici et

357
00:18:58,740 --> 00:19:00,930
‫celui-ci est vraiment juste pour

358
00:19:00,930 --> 00:19:03,240
‫vous montrer que nous pouvons réellement répéter

359
00:19:03,240 --> 00:19:07,130
‫les étapes et je veux aussi vous montrer un autre opérateur.

360
00:19:07,130 --> 00:19:11,020
‫Alors sélectionnons maintenant par identifiant et rappelons-nous que l'identifiant est maintenant

361
00:19:11,020 --> 00:19:12,920
‫la difficulté, n'est-ce pas ?

362
00:19:12,920 --> 00:19:15,023
‫Nous venons donc de le préciser ici.

363
00:19:16,820 --> 00:19:20,670
‫Nous voulons donc l'identifiant et maintenant un nouvel opérateur que nous

364
00:19:20,670 --> 00:19:22,500
‫n'avons pas encore utilisé.

365
00:19:22,500 --> 00:19:26,913
‫Nous voulons que ce ne soit pas égal à, et disons facile.

366
00:19:28,210 --> 00:19:29,830
‫Et donc, comme ça, nous allons

367
00:19:29,830 --> 00:19:32,260
‫sélectionner tous les documents qui ne sont pas faciles.

368
00:19:32,260 --> 00:19:33,880
‫Alors dans ce cas,

369
00:19:33,880 --> 00:19:36,340
‫celui qui dit moyen et difficile, non ?

370
00:19:36,340 --> 00:19:41,007
‫Donc en gros, à l'exception de celui qui dit facile, non ?

371
00:19:42,200 --> 00:19:43,790
‫Encore une fois, ce

372
00:19:43,790 --> 00:19:47,950
‫n'est pas vraiment utile ici car cela enlèvera beaucoup de nos données significatives, mais

373
00:19:47,950 --> 00:19:50,090
‫juste pour vous montrer que nous pouvons

374
00:19:50,090 --> 00:19:51,980
‫bien sûr faire correspondre plusieurs fois.

375
00:19:51,980 --> 00:19:54,750
‫Donc, dans ce cas, nous avons fait correspondre une fois avant

376
00:19:54,750 --> 00:19:58,160
‫de faire le groupe, puis nous avons fait correspondre une fois que nous étions

377
00:19:58,160 --> 00:19:59,475
‫prêts, en faisant le regroupement.

378
00:19:59,475 --> 00:20:01,720
‫Maintenant, gardons cela ici, hors de

379
00:20:01,720 --> 00:20:03,798
‫notre pipeline d'agrégation, mais je vais

380
00:20:03,798 --> 00:20:06,200
‫le laisser ici, juste pour que vous

381
00:20:06,200 --> 00:20:08,200
‫le gardiez comme référence.

382
00:20:09,580 --> 00:20:12,750
‫Donnez-lui une autre sauvegarde, réessayez, et voici donc

383
00:20:12,750 --> 00:20:14,730
‫nos résultats pour obtenir nos

384
00:20:14,730 --> 00:20:16,590
‫statistiques de tournée.

385
00:20:16,590 --> 00:20:19,030
‫Donc, vraiment sympa, vraiment super.

386
00:20:19,030 --> 00:20:21,070
‫J'espère que vous avez apprécié

387
00:20:21,070 --> 00:20:23,200
‫cette vidéo et dans la suivante, nous

388
00:20:23,200 --> 00:20:26,810
‫allons continuer à utiliser le pipeline d'agrégation pour faire d'autres calculs.

389
00:20:26,810 --> 00:20:30,050
‫Et pour vous montrer d'autres étapes différentes.

390
00:20:30,050 --> 00:20:31,973
‫Alors restez à l'écoute pour celui-là.

