﻿1
00:00:01,210 --> 00:00:03,670
‫Intervenant : Continuons maintenant à travailler sur notre API.

2
00:00:04,530 --> 00:00:06,620
‫Au cours des prochaines

3
00:00:06,620 --> 00:00:08,840
‫vidéos, nous allons implémenter quelques fonctionnalités

4
00:00:08,840 --> 00:00:12,440
‫API communes qui rendent une API plus facile et plus

5
00:00:12,440 --> 00:00:14,950
‫agréable à utiliser pour quiconque va l'utiliser.

6
00:00:14,950 --> 00:00:15,940
‫Et dans cette

7
00:00:15,940 --> 00:00:17,963
‫conférence, nous allons commencer par le filtrage.

8
00:00:19,340 --> 00:00:22,830
‫Encore une fois, la première fonctionnalité que nous allons implémenter est

9
00:00:22,830 --> 00:00:26,000
‫de permettre à l'utilisateur de filtrer les données à l'aide

10
00:00:26,000 --> 00:00:27,563
‫d'une chaîne de requête.

11
00:00:28,890 --> 00:00:32,233
‫Permettez-moi de vous dire quelle chaîne de requête utilise Postman.

12
00:00:36,610 --> 00:00:39,993
‫Alors, fermons tous ces gars.

13
00:00:46,150 --> 00:00:47,683
‫Bien.

14
00:00:47,683 --> 00:00:50,350
‫En fait, là où le filtrage aura du sens, c'est

15
00:00:50,350 --> 00:00:52,793
‫ici sur cet itinéraire d'obtention de toutes les visites.

16
00:00:53,750 --> 00:00:55,940
‫Car, c'est celui qui, comme

17
00:00:55,940 --> 00:00:58,720
‫son nom l'indique, reçoit toutes les tournées.

18
00:00:58,720 --> 00:01:02,370
‫Et donc ici, nous voulons permettre à l'utilisateur de filtrer les données,

19
00:01:02,370 --> 00:01:04,840
‫de sorte qu'au lieu d'obtenir toutes les

20
00:01:04,840 --> 00:01:08,123
‫données, il n'obtienne que les données qui correspondent au filtre.

21
00:01:09,340 --> 00:01:12,290
‫Ainsi, nous pouvons permettre à l'utilisateur d'interroger les

22
00:01:12,290 --> 00:01:14,750
‫données de manière très simple.

23
00:01:14,750 --> 00:01:16,480
‫Encore une fois, en utilisant la chaîne de requête.

24
00:01:16,480 --> 00:01:18,850
‫Et la chaîne de requête ressemble un peu à ceci.

25
00:01:18,850 --> 00:01:20,340
‫Et je suis sûr que vous l'avez vu.

26
00:01:20,340 --> 00:01:23,120
‫Nous commençons donc par un point d'interrogation,

27
00:01:23,120 --> 00:01:26,663
‫puis nous pouvons simplement spécifier des paires de valeurs de champ.

28
00:01:28,420 --> 00:01:30,360
‫Disons donc que nous

29
00:01:30,360 --> 00:01:33,620
‫voulions filtrer pour une durée égale à cinq

30
00:01:33,620 --> 00:01:36,573
‫et en même temps, une difficulté de facile.

31
00:01:40,500 --> 00:01:44,690
‫Nous pouvons donc très simplement construire une chaîne de requête comme celle-ci.

32
00:01:44,690 --> 00:01:46,860
‫Encore une fois, cela commence par ce

33
00:01:46,860 --> 00:01:48,800
‫point d'interrogation, puis nous pouvons

34
00:01:48,800 --> 00:01:51,723
‫spécifier autant de paires clé-valeur en utilisant ce format.

35
00:01:53,000 --> 00:01:54,860
‫Et maintenant, notre

36
00:01:54,860 --> 00:01:57,450
‫application Postman reconnaît cela et analyse

37
00:01:57,450 --> 00:02:00,420
‫essentiellement cette chaîne ici et place la

38
00:02:00,420 --> 00:02:04,140
‫clé et les valeurs ici dans cet onglet Paramètres.

39
00:02:04,140 --> 00:02:06,963
‫Nous pourrions donc également spécifier la clé et les valeurs ici.

40
00:02:07,890 --> 00:02:11,110
‫Alors disons test, définissez-le sur vingt-trois, et vous voyez ici

41
00:02:11,110 --> 00:02:12,690
‫qu'il l'a réellement ajouté

42
00:02:12,690 --> 00:02:14,483
‫à la chaîne de requête.

43
00:02:15,370 --> 00:02:18,740
‫C'est donc une très belle façon pour Postman de nous aider ici.

44
00:02:18,740 --> 00:02:21,150
‫Parce que maintenant nous pouvons, par exemple, pendant que

45
00:02:21,150 --> 00:02:24,260
‫nous effectuons des tests, nous pouvons les activer et les désactiver et

46
00:02:24,260 --> 00:02:25,610
‫vous voyez que la

47
00:02:25,610 --> 00:02:27,573
‫chaîne de requête ici réagit en conséquence.

48
00:02:28,970 --> 00:02:32,940
‫Quoi qu'il en soit, nous avons maintenant besoin d'un moyen d'accéder à ces données qui

49
00:02:32,940 --> 00:02:35,883
‫se trouvent dans une chaîne de requête, dans notre application Express.

50
00:02:36,730 --> 00:02:39,210
‫Mais, heureusement pour nous, c'est

51
00:02:39,210 --> 00:02:42,260
‫très facile, car Express s'en est déjà occupé.

52
00:02:42,260 --> 00:02:44,690
‫Ce n'est donc qu'une des

53
00:02:44,690 --> 00:02:48,420
‫nombreuses choses qu'Express fait pour nous afin d'accélérer

54
00:02:48,420 --> 00:02:50,563
‫le développement de NodeJS.

55
00:02:52,420 --> 00:02:55,170
‫Alors laissez-moi vous le montrer ici, en fait dans la console.

56
00:02:57,810 --> 00:03:01,380
‫Donc, ces données sont sur une requête, ce qui est logique, puis

57
00:03:01,380 --> 00:03:04,013
‫elles se trouvent dans un champ appelé requête.

58
00:03:04,980 --> 00:03:07,490
‫Ainsi, la requête de point de requête devrait alors

59
00:03:07,490 --> 00:03:10,630
‫nous donner un objet bien formaté avec les données de la

60
00:03:10,630 --> 00:03:11,730
‫chaîne de requête.

61
00:03:12,760 --> 00:03:13,593
‫Donnez-lui une sauvegarde.

62
00:03:14,530 --> 00:03:16,630
‫Et notez comment je l'ai

63
00:03:16,630 --> 00:03:20,150
‫ajouté à la fonction de gestionnaire d'obtention de toutes les visites.

64
00:03:20,150 --> 00:03:22,800
‫Encore une fois, nous effectuons ce genre de filtrage dans

65
00:03:22,800 --> 00:03:25,323
‫l'itinéraire où nous voulons obtenir toutes les visites.

66
00:03:27,140 --> 00:03:30,373
‫Testons-le maintenant avec cette chaîne de requête exacte.

67
00:03:31,400 --> 00:03:32,920
‫Envoyé la demande.

68
00:03:32,920 --> 00:03:36,333
‫Et en revenant, nous avons ici l'objet.

69
00:03:37,170 --> 00:03:40,420
‫Agrandissons cela ici pour que vous

70
00:03:40,420 --> 00:03:41,720
‫puissiez voir.

71
00:03:41,720 --> 00:03:43,650
‫Cela ne fonctionne pas vraiment.

72
00:03:43,650 --> 00:03:45,820
‫Alors parfois, je sais que certaines personnes ne peuvent

73
00:03:45,820 --> 00:03:47,630
‫pas voir le bas de l'écran.

74
00:03:47,630 --> 00:03:49,080
‫Permettez-moi de le refaire ici.

75
00:03:51,280 --> 00:03:52,942
‫Et donc, on y va.

76
00:03:52,942 --> 00:03:55,990
‫Nous avons l'objet, dont la durée est définie sur cinq

77
00:03:55,990 --> 00:03:58,200
‫et la difficulté définie sur facile.

78
00:03:58,200 --> 00:04:00,460
‫Et donc vous voyez qu'Express a

79
00:04:00,460 --> 00:04:04,250
‫très bien analysé cette chaîne dans cet objet facile à utiliser.

80
00:04:04,250 --> 00:04:06,330
‫Maintenant, une chose que j'ai remarquée ici, c'est qu'il

81
00:04:06,330 --> 00:04:08,380
‫nous manque en fait le journal que

82
00:04:08,380 --> 00:04:10,440
‫nous avions plus facilement ici dans la console.

83
00:04:10,440 --> 00:04:12,540
‫Voyons pourquoi cela se produit.

84
00:04:15,431 --> 00:04:18,430
‫Donc, pour une raison quelconque, nous avons maintenant

85
00:04:18,430 --> 00:04:21,310
‫l'application avant de lire la variable d'environnement.

86
00:04:21,310 --> 00:04:24,113
‫De cette façon, l'application n'y a pas accès.

87
00:04:25,010 --> 00:04:27,600
‫Je pensais avoir résolu ce problème auparavant, mais pour une raison

88
00:04:27,600 --> 00:04:29,300
‫quelconque, il est de retour maintenant.

89
00:04:30,340 --> 00:04:32,390
‫Donnez-lui une autre sauvegarde ici.

90
00:04:32,390 --> 00:04:33,690
‫Et je vais réessayer.

91
00:04:36,180 --> 00:04:38,933
‫Maintenant, nous récupérons notre connexion.

92
00:04:40,200 --> 00:04:43,750
‫Une demande d'obtention à cette URL, puis avec ce

93
00:04:43,750 --> 00:04:45,963
‫reste des données ici.

94
00:04:48,260 --> 00:04:50,600
‫Quoi qu'il en soit, utilisons maintenant

95
00:04:50,600 --> 00:04:53,200
‫ces données pour mettre en œuvre notre filtrage.

96
00:04:53,200 --> 00:04:55,840
‫Mais avant de pouvoir le faire, je dois vous dire

97
00:04:55,840 --> 00:04:58,440
‫que dans Mongoose, il existe en fait deux manières d'écrire

98
00:04:58,440 --> 00:05:00,120
‫des requêtes de base de données.

99
00:05:00,120 --> 00:05:03,050
‫La première consiste simplement à utiliser l'objet filtre

100
00:05:03,050 --> 00:05:06,490
‫comme nous l'avons fait dans la section d'introduction de MongoDB.

101
00:05:06,490 --> 00:05:08,690
‫Droit? Vous vous en souvenez ?

102
00:05:08,690 --> 00:05:12,333
‫La deuxième façon consiste à utiliser des méthodes spéciales de Mongoose.

103
00:05:13,590 --> 00:05:16,505
‫Permettez-moi juste, très rapidement, de vous montrer cela.

104
00:05:16,505 --> 00:05:19,420
‫Avec l'objet filtre, nous le ferions comme ceci.

105
00:05:19,420 --> 00:05:21,910
‫Nous commençons par la recherche ici, puis nous pouvons

106
00:05:21,910 --> 00:05:23,570
‫y passer un objet de filtre.

107
00:05:23,570 --> 00:05:25,900
‫Et je l'ai déjà mentionné auparavant.

108
00:05:25,900 --> 00:05:28,410
‫Encore une fois, cela fonctionne exactement de la

109
00:05:28,410 --> 00:05:30,650
‫même manière qu'avec une requête MongoDB normale.

110
00:05:30,650 --> 00:05:33,160
‫Nous pourrions maintenant dire, la durée l'a

111
00:05:34,570 --> 00:05:35,657
‫fixé à cinq.

112
00:05:35,657 --> 00:05:36,663
‫Et

113
00:05:39,320 --> 00:05:42,253
‫puis, difficulté, réglez-le sur facile.

114
00:05:44,300 --> 00:05:47,150
‫C'est exactement la chaîne de requête que nous avions auparavant, et

115
00:05:47,150 --> 00:05:48,960
‫maintenant je la code ici juste

116
00:05:48,960 --> 00:05:50,860
‫pour vous montrer les deux manières différentes

117
00:05:50,860 --> 00:05:52,423
‫d'écrire des requêtes dans Mongoose.

118
00:05:53,318 --> 00:05:54,518
‫Testons celui-ci.

119
00:05:58,220 --> 00:06:00,453
‫Vous voyez que maintenant, nous n'obtenons que deux résultats.

120
00:06:01,290 --> 00:06:03,193
‫Laissons-nous un peu d'espace ici.

121
00:06:04,810 --> 00:06:05,760
‫Bien.

122
00:06:05,760 --> 00:06:08,870
‫Nous voyons les deux résultats et en effet ils

123
00:06:08,870 --> 00:06:10,890
‫ont tous les deux une

124
00:06:10,890 --> 00:06:15,890
‫durée de cinq, donc ici et ici, et ils sont tous les deux faciles.

125
00:06:15,930 --> 00:06:17,443
‫Facile et facile.

126
00:06:18,350 --> 00:06:20,563
‫Notre filtre a donc très bien fonctionné.

127
00:06:21,675 --> 00:06:24,710
‫C'est la première façon d'écrire une requête.

128
00:06:24,710 --> 00:06:27,650
‫Juste la manière normale à laquelle nous sommes déjà habitués, mais il

129
00:06:27,650 --> 00:06:29,103
‫y a une autre manière.

130
00:06:30,790 --> 00:06:32,993
‫Permettez-moi de vous montrer cela aussi.

131
00:06:37,570 --> 00:06:39,910
‫Encore une fois, nous commençons exactement de la

132
00:06:39,910 --> 00:06:41,690
‫même manière, mais la différence

133
00:06:41,690 --> 00:06:44,150
‫est que nous commençons à enchaîner une méthode

134
00:06:44,150 --> 00:06:47,523
‫spéciale Mongoose pour créer une requête similaire à celle que nous avons.

135
00:06:49,540 --> 00:06:50,563
‫Nous disons donc,

136
00:06:51,730 --> 00:06:52,563
‫où

137
00:06:54,910 --> 00:06:55,780
‫la durée

138
00:06:58,840 --> 00:07:00,343
‫est égale à cinq.

139
00:07:01,810 --> 00:07:03,630
‫Alors aussi, où la

140
00:07:04,710 --> 00:07:06,180
‫difficulté, qui doit

141
00:07:06,180 --> 00:07:08,023
‫être entre guillemets, est

142
00:07:11,420 --> 00:07:12,253
‫égale à

143
00:07:13,170 --> 00:07:14,003
‫facile.

144
00:07:17,270 --> 00:07:19,620
‫Cette requête ici va être exactement la

145
00:07:19,620 --> 00:07:22,500
‫même que celle-ci, mais encore une fois, écrite à

146
00:07:22,500 --> 00:07:24,740
‫l'aide de méthodes spéciales Mongoose.

147
00:07:24,740 --> 00:07:27,240
‫Et il existe bien sûr des tonnes d'autres méthodes.

148
00:07:27,240 --> 00:07:30,980
‫Par exemple, au lieu d'égal à égal, nous pouvons avoir moins que,

149
00:07:30,980 --> 00:07:34,060
‫ou égal, ou juste moins que, ou vous pouvez également

150
00:07:34,060 --> 00:07:37,520
‫trier les résultats ou limiter le nombre de résultats, et vraiment

151
00:07:37,520 --> 00:07:39,020
‫toutes sortes de choses.

152
00:07:41,057 --> 00:07:43,180
‫Bien sûr, nous allons en utiliser certains

153
00:07:43,180 --> 00:07:44,743
‫dans les prochaines vidéos.

154
00:07:46,050 --> 00:07:48,290
‫Cela peut vous sembler un peu étrange

155
00:07:48,290 --> 00:07:51,303
‫ici, mais c'est en fait très, très utile dans certains cas.

156
00:07:52,530 --> 00:07:55,573
‫Juste pour tester, réessayez celui-ci.

157
00:07:57,010 --> 00:07:59,953
‫Et en effet, nous obtenons nos deux mêmes résultats.

158
00:08:02,735 --> 00:08:04,590
‫Maintenant, permettez-moi de commenter celui-ci ici.

159
00:08:04,590 --> 00:08:06,950
‫Je vais le laisser ici juste comme

160
00:08:06,950 --> 00:08:10,300
‫référence, car pour le moment, nous allons utiliser cette méthode ici.

161
00:08:10,300 --> 00:08:12,400
‫Et nous allons l'utiliser, car en

162
00:08:12,400 --> 00:08:15,000
‫fait, nous avons déjà un objet qui ressemble

163
00:08:15,000 --> 00:08:16,363
‫beaucoup à ça.

164
00:08:17,360 --> 00:08:20,300
‫Et c'est la requête de point de requête.

165
00:08:20,300 --> 00:08:22,193
‫Si vous le comparez, cet objet,

166
00:08:23,228 --> 00:08:25,128
‫à cet objet que vous voyez

167
00:08:26,280 --> 00:08:28,173
‫ici-bas, ressemble exactement à celui-ci.

168
00:08:30,120 --> 00:08:32,130
‫Pour implémenter un filtre très simple,

169
00:08:32,130 --> 00:08:37,130
‫tout ce que nous avons à faire dans ce cas est de dire req dot query.

170
00:08:37,150 --> 00:08:38,793
‫Essayons encore une fois.

171
00:08:39,730 --> 00:08:40,803
‫Débarrassez-vous de ça ici.

172
00:08:42,650 --> 00:08:46,300
‫Et en effet, nous obtenons exactement les mêmes deux résultats.

173
00:08:46,300 --> 00:08:50,223
‫Essayons maintenant uniquement avec une difficulté définie sur facile.

174
00:08:52,140 --> 00:08:53,993
‫Maintenant, nous obtenons quatre résultats.

175
00:08:55,280 --> 00:08:56,700
‫Tous auront bien sûr

176
00:08:56,700 --> 00:08:58,463
‫la difficulté définie sur facile.

177
00:09:00,540 --> 00:09:03,100
‫Notre filtre, notre filtre très basique,

178
00:09:03,100 --> 00:09:04,880
‫fonctionne maintenant réellement.

179
00:09:04,880 --> 00:09:06,870
‫Maintenant, le problème avec cette

180
00:09:06,870 --> 00:09:09,650
‫implémentation, c'est qu'elle est en fait beaucoup trop simple.

181
00:09:09,650 --> 00:09:11,690
‫C'est parce que, plus tard, nous aurons

182
00:09:11,690 --> 00:09:13,370
‫d'autres paramètres de requête.

183
00:09:13,370 --> 00:09:16,730
‫Par exemple, sort, pour la fonctionnalité de tri, ou

184
00:09:16,730 --> 00:09:18,653
‫page, pour la pagination.

185
00:09:19,610 --> 00:09:21,040
‫Nous devons nous assurer

186
00:09:21,040 --> 00:09:24,180
‫que nous ne les interrogeons pas dans notre base de données.

187
00:09:24,180 --> 00:09:25,883
‫Par exemple, si

188
00:09:27,360 --> 00:09:29,893
‫nous ajoutions ici, page, égal à

189
00:09:30,970 --> 00:09:33,993
‫deux, nous n'obtiendrions bien sûr aucun résultat.

190
00:09:35,130 --> 00:09:36,300
‫Laisse-moi te montrer ça.

191
00:09:36,300 --> 00:09:38,280
‫Et effectivement nous n'obtenons aucun résultat,

192
00:09:38,280 --> 00:09:40,560
‫car il n'y a pas de document dans cette

193
00:09:40,560 --> 00:09:42,593
‫collection où la page est mise à deux.

194
00:09:43,480 --> 00:09:46,200
‫Nous voulons uniquement utiliser ce paramètre ici, ou

195
00:09:46,200 --> 00:09:49,170
‫ce champ, page, pour implémenter la pagination et non

196
00:09:49,170 --> 00:09:51,593
‫pour interroger réellement la base de données.

197
00:09:53,450 --> 00:09:54,870
‫Donc, ce que nous

198
00:09:54,870 --> 00:09:57,810
‫devrons faire, c'est exclure ces noms de champs spéciaux

199
00:09:57,810 --> 00:10:00,883
‫de notre chaîne de requête avant de procéder au filtrage.

200
00:10:02,680 --> 00:10:05,540
‫Allons de l'avant et mettons cela en œuvre.

201
00:10:05,540 --> 00:10:08,200
‫Ce que nous allons faire, c'est d'abord

202
00:10:08,200 --> 00:10:12,333
‫créer une copie superficielle de l'objet de requête de point de requête.

203
00:10:15,690 --> 00:10:17,670
‫Appelons-le objet de requête.

204
00:10:17,670 --> 00:10:20,030
‫Ici, nous avons vraiment besoin d'une copie papier.

205
00:10:20,030 --> 00:10:23,560
‫Nous ne pouvons pas simplement faire, demander une requête de point,

206
00:10:23,560 --> 00:10:25,570
‫car alors, si vous supprimez

207
00:10:25,570 --> 00:10:28,030
‫quelque chose de cet objet, nous le supprimerons

208
00:10:28,030 --> 00:10:30,700
‫également de l'objet de requête de point req.

209
00:10:30,700 --> 00:10:32,170
‫Et c'est parce que

210
00:10:32,170 --> 00:10:35,260
‫dans JavaScript, lorsque nous définissons une variable sur un

211
00:10:35,260 --> 00:10:37,490
‫autre objet, cette nouvelle variable sera essentiellement

212
00:10:37,490 --> 00:10:39,683
‫une référence à cet objet d'origine.

213
00:10:41,030 --> 00:10:43,770
‫Nous avons donc vraiment besoin d'une copie papier ici.

214
00:10:43,770 --> 00:10:46,310
‫En JavaScript, il n'y a pas vraiment de

215
00:10:46,310 --> 00:10:49,020
‫moyen intégré de faire cela, mais une astuce très

216
00:10:49,020 --> 00:10:53,520
‫intéressante que nous pouvons utiliser, depuis ES6, consiste à utiliser, d'abord, la structuration que nous

217
00:10:53,520 --> 00:10:55,960
‫utilisons en utilisant dot dot dot.

218
00:10:55,960 --> 00:10:58,270
‫Et puis nous pouvons simplement créer un nouvel objet

219
00:10:58,270 --> 00:10:59,663
‫à partir de cela.

220
00:11:01,290 --> 00:11:02,123
‫Juste comme ça.

221
00:11:03,260 --> 00:11:05,420
‫Cette structuration ici, ces trois

222
00:11:05,420 --> 00:11:08,683
‫points, va fondamentalement retirer tous les champs de l'objet.

223
00:11:09,860 --> 00:11:11,810
‫Ici avec les accolades, eh

224
00:11:11,810 --> 00:11:13,990
‫bien, nous créons simplement un nouvel objet.

225
00:11:13,990 --> 00:11:15,940
‫Nous avons donc un nouvel objet

226
00:11:15,940 --> 00:11:18,070
‫qui contiendra essentiellement toutes les paires clé-valeur

227
00:11:18,070 --> 00:11:21,053
‫qui se trouvaient dans notre objet de requête req dot.

228
00:11:23,020 --> 00:11:24,330
‫C'est donc une copie.

229
00:11:24,330 --> 00:11:26,450
‫Créons maintenant un tableau de

230
00:11:26,450 --> 00:11:28,633
‫tous les champs que nous voulons exclure.

231
00:11:31,610 --> 00:11:34,040
‫J'appelle ça des champs exclus.

232
00:11:34,040 --> 00:11:37,090
‫Et puis nous voulons exclure la page, c'est donc celle

233
00:11:37,090 --> 00:11:38,400
‫que je viens

234
00:11:38,400 --> 00:11:40,250
‫de vous dire auparavant dans Postman.

235
00:11:40,250 --> 00:11:42,150
‫Ensuite, nous voulons également exclure

236
00:11:43,170 --> 00:11:44,440
‫le tri,

237
00:11:44,440 --> 00:11:46,053
‫nous voulons exclure la

238
00:11:47,890 --> 00:11:50,533
‫limite et nous voulons exclure les champs.

239
00:11:52,160 --> 00:11:54,940
‫Nous mettrons en œuvre toutes les fonctionnalités de

240
00:11:54,940 --> 00:11:58,210
‫pagination, de tri, de limitation et de sélection de certains

241
00:11:58,210 --> 00:12:01,140
‫champs spécifiques uniquement, plus tard au cours des

242
00:12:01,140 --> 00:12:02,690
‫deux prochaines vidéos.

243
00:12:03,750 --> 00:12:05,900
‫Ensuite, ce que nous devons faire

244
00:12:05,900 --> 00:12:08,610
‫est de supprimer essentiellement tous ces champs de

245
00:12:08,610 --> 00:12:10,230
‫notre objet de requête.

246
00:12:10,230 --> 00:12:11,690
‫Et pour ce faire,

247
00:12:11,690 --> 00:12:13,523
‫nous allons boucler sur ces champs.

248
00:12:14,660 --> 00:12:15,860
‫Donc, champs

249
00:12:17,690 --> 00:12:19,070
‫exclus pour chacun.

250
00:12:19,070 --> 00:12:20,390
‫Et nous utilisons pour chacun

251
00:12:20,390 --> 00:12:22,423
‫parce que nous ne voulons pas enregistrer un nouveau tableau.

252
00:12:24,150 --> 00:12:25,840
‫Ensuite, chacun de ces éléments,

253
00:12:25,840 --> 00:12:27,863
‫nous pouvons utiliser l'opérateur de suppression.

254
00:12:30,930 --> 00:12:32,530
‫Et puis à partir

255
00:12:32,530 --> 00:12:34,730
‫de l'objet de requête, nous voulons supprimer

256
00:12:34,730 --> 00:12:36,700
‫le champ portant le nom d'élément,

257
00:12:36,700 --> 00:12:38,820
‫donc l'élément actuel dans le tableau.

258
00:12:38,820 --> 00:12:42,340
‫Comme ça, on supprimera d'abord le champ de page, puis

259
00:12:42,340 --> 00:12:45,563
‫le tri, puis la limite, puis les champs.

260
00:12:46,560 --> 00:12:48,440
‫Bien sûr, seulement au cas où il serait là.

261
00:12:48,440 --> 00:12:50,860
‫S'il n'y a, par exemple, aucun champ de

262
00:12:50,860 --> 00:12:54,030
‫limite, alors, bien sûr, cela ne sera pas supprimé, car il

263
00:12:54,030 --> 00:12:55,130
‫n'y est pas.

264
00:12:56,530 --> 00:12:59,233
‫Voyons maintenant si cela fonctionne réellement.

265
00:13:00,380 --> 00:13:02,530
‫Je vais enregistrer la requête de

266
00:13:02,530 --> 00:13:05,723
‫point req et en même temps notre objet de requête.

267
00:13:08,742 --> 00:13:09,692
‫Donner une sauvegarde.

268
00:13:10,600 --> 00:13:12,060
‫Ne vous inquiétez pas pour nos résultats maintenant.

269
00:13:12,060 --> 00:13:14,190
‫Tout ce que je veux regarder,

270
00:13:14,190 --> 00:13:17,080
‫c'est notre objet de requête, juste pour m'assurer que

271
00:13:17,080 --> 00:13:19,530
‫cette logique que nous avons ici fonctionne réellement.

272
00:13:21,540 --> 00:13:26,540
‫Ajoutons ici une sorte de un et une limite de 10.

273
00:13:27,260 --> 00:13:29,210
‫Ceux-ci auront plus de sens plus tard.

274
00:13:29,210 --> 00:13:30,540
‫Pour l'instant, je ne fais que

275
00:13:30,540 --> 00:13:32,293
‫les ajouter, afin de pouvoir les exclure plus tard.

276
00:13:34,490 --> 00:13:37,120
‫Les résultats n'ont pas d'importance, tout ce qui

277
00:13:37,120 --> 00:13:40,640
‫compte, c'est que notre requête d'origine est celle-ci ici, puis notre objet

278
00:13:40,640 --> 00:13:42,820
‫de requête, qui est celui que nous

279
00:13:42,820 --> 00:13:44,010
‫allons utiliser, n'a

280
00:13:44,010 --> 00:13:46,320
‫que des difficultés à régler sur facile.

281
00:13:46,320 --> 00:13:49,723
‫C'est parce que nous avons exclu, paginé, trié et limité.

282
00:13:51,000 --> 00:13:53,460
‫Cela fonctionne maintenant, donc au lieu

283
00:13:53,460 --> 00:13:57,033
‫d'utiliser req dot query, nous allons utiliser notre objet de requête.

284
00:13:59,390 --> 00:14:03,000
‫Débarrassons-nous de cela et réessayez.

285
00:14:03,000 --> 00:14:05,080
‫Nous devrions maintenant revenir à

286
00:14:05,080 --> 00:14:07,180
‫la recherche de tous les documents dont

287
00:14:07,180 --> 00:14:11,473
‫la difficulté est définie sur facile et en ignorant tous ces autres champs.

288
00:14:13,256 --> 00:14:14,150
‫Envoyez ça.

289
00:14:14,150 --> 00:14:15,930
‫Et effectivement, nous revenons

290
00:14:15,930 --> 00:14:18,623
‫à nos quatre résultats que nous avions auparavant.

291
00:14:19,900 --> 00:14:22,610
‫On peut aussi activer la durée, et effectivement,

292
00:14:22,610 --> 00:14:24,743
‫on aura maintenant deux résultats.

293
00:14:26,110 --> 00:14:27,180
‫Vous vous en souvenez ?

294
00:14:27,180 --> 00:14:28,643
‫Et si nous les désactivons,

295
00:14:29,960 --> 00:14:32,380
‫eh bien, bien sûr, cela fonctionnera de la même manière.

296
00:14:32,380 --> 00:14:34,330
‫Supprimons simplement cette ligne vide ici.

297
00:14:36,740 --> 00:14:40,340
‫Et donc, en effet, avec notre chaîne de requête d'origine, les choses

298
00:14:40,340 --> 00:14:42,693
‫fonctionnaient évidemment toujours de la même manière.

299
00:14:44,220 --> 00:14:47,630
‫Nous avons préparé notre fonction de filtre pour qu'elle

300
00:14:47,630 --> 00:14:51,410
‫ignore les champs de page, de tri et de limite.

301
00:14:51,410 --> 00:14:53,450
‫Mais il y a en fait

302
00:14:53,450 --> 00:14:56,210
‫quelque chose de plus que nous devons faire dans

303
00:14:56,210 --> 00:14:59,753
‫notre code, afin de pouvoir implémenter ces fonctionnalités dans les futures vidéos.

304
00:15:01,360 --> 00:15:03,250
‫Revenons ici à notre code.

305
00:15:03,250 --> 00:15:04,570
‫Voyons maintenant comment

306
00:15:04,570 --> 00:15:07,093
‫fonctionnent réellement les requêtes dans Mongoose.

307
00:15:08,220 --> 00:15:09,910
‫Je pense l'avoir

308
00:15:09,910 --> 00:15:13,400
‫déjà mentionné, mais il est très important d'en reparler.

309
00:15:13,400 --> 00:15:16,943
‫Cette méthode de recherche ici va renvoyer une requête.

310
00:15:18,060 --> 00:15:20,430
‫Tout cela ici renverra une requête.

311
00:15:20,430 --> 00:15:22,410
‫Et c'est la raison pour laquelle

312
00:15:22,410 --> 00:15:24,840
‫on peut ensuite enchaîner d'autres méthodes comme celle-ci.

313
00:15:24,840 --> 00:15:28,630
‫Comme where, equals, et toutes ces autres méthodes dont

314
00:15:28,630 --> 00:15:30,770
‫je vous ai déjà parlé.

315
00:15:30,770 --> 00:15:33,770
‫Permettez-moi de vous montrer à nouveau cela dans la documentation.

316
00:15:37,670 --> 00:15:40,170
‫Ici, nous avons l'objet de requête,

317
00:15:40,170 --> 00:15:42,710
‫et encore une fois, lorsque nous utilisons

318
00:15:42,710 --> 00:15:46,590
‫la méthode find, elle renverra un objet qui est une requête.

319
00:15:46,590 --> 00:15:48,310
‫Donc, dans le prototype de point

320
00:15:48,310 --> 00:15:50,180
‫de requête, nous avons alors toutes ces méthodes.

321
00:15:50,180 --> 00:15:52,820
‫Par exemple, ici, nous avons où, que je

322
00:15:52,820 --> 00:15:54,040
‫viens de mentionner.

323
00:15:54,040 --> 00:15:55,790
‫Nous avons sort qui est celui

324
00:15:55,790 --> 00:15:58,120
‫qui allait être utilisé plus tard pour trier.

325
00:15:58,120 --> 00:16:00,870
‫Nous avons, voyons, nous avons

326
00:16:00,870 --> 00:16:03,740
‫moins ou moins qu'égal, nous avons plus.

327
00:16:03,740 --> 00:16:05,260
‫Nous avons...

328
00:16:05,260 --> 00:16:06,700
‫Qu'avons-nous utilisé d'autre ?

329
00:16:06,700 --> 00:16:08,070
‫Nous avons utilisé des égaux.

330
00:16:08,070 --> 00:16:11,310
‫Tous ces éléments font partie du prototype de point de requête.

331
00:16:11,310 --> 00:16:13,920
‫Ce qui, encore une fois, fait référence aux objets

332
00:16:13,920 --> 00:16:16,783
‫que nous créons à l'aide de la classe de requête.

333
00:16:19,613 --> 00:16:21,410
‫Encore une fois, c'est la raison

334
00:16:21,410 --> 00:16:24,070
‫pour laquelle nous pouvons faire ce genre de chaînage.

335
00:16:24,070 --> 00:16:26,290
‫Vient maintenant la partie importante.

336
00:16:26,290 --> 00:16:28,350
‫Dès qu'on attend effectivement

337
00:16:28,350 --> 00:16:30,970
‫le résultat de la requête, donc dès

338
00:16:30,970 --> 00:16:33,950
‫qu'on utilise wait here ou here, par exemple.

339
00:16:33,950 --> 00:16:35,890
‫Dès que nous utilisons ce

340
00:16:35,890 --> 00:16:37,910
‫wait, la requête s'exécutera et

341
00:16:37,910 --> 00:16:39,610
‫reviendra avec les

342
00:16:39,610 --> 00:16:42,144
‫documents qui correspondent réellement à notre requête.

343
00:16:42,144 --> 00:16:44,960
‫Si nous le faisons comme ceci, comme nous l'avons ici,

344
00:16:44,960 --> 00:16:46,730
‫alors il y a maintenant moyen,

345
00:16:46,730 --> 00:16:49,110
‫plus tard, d'implémenter le tri, ou la pagination,

346
00:16:49,110 --> 00:16:50,793
‫ou toutes ces autres fonctionnalités.

347
00:16:51,880 --> 00:16:53,870
‫Au lieu de cela, ce que

348
00:16:53,870 --> 00:16:57,220
‫nous devrons faire, c'est enregistrer cette partie ici dans une requête, puis à

349
00:16:57,220 --> 00:17:00,200
‫la fin, dès que nous changeons toutes les méthodes de la

350
00:17:00,200 --> 00:17:02,440
‫requête dont nous avons besoin, alors seulement à

351
00:17:02,440 --> 00:17:04,863
‫la fin, nous pouvons attendre que mettre en doute.

352
00:17:06,080 --> 00:17:08,600
‫Par exemple, nous allons utiliser la méthode sort.

353
00:17:08,600 --> 00:17:10,200
‫Nous allons utiliser la méthode

354
00:17:10,200 --> 00:17:12,440
‫predict, nous allons utiliser la méthode limit, et

355
00:17:12,440 --> 00:17:14,500
‫nous allons utiliser, vraiment, un tas de

356
00:17:14,500 --> 00:17:16,620
‫méthodes, et les enchaîner à cette requête.

357
00:17:16,620 --> 00:17:18,110
‫Ce serait impossible à

358
00:17:18,110 --> 00:17:20,910
‫faire, encore une fois, si l'on attend le résultat de

359
00:17:20,910 --> 00:17:23,073
‫cette première interrogation ici, tout de suite.

360
00:17:24,590 --> 00:17:26,470
‫J'espère que cela avait du sens.

361
00:17:26,470 --> 00:17:28,660
‫La façon dont nous procéderons,

362
00:17:28,660 --> 00:17:30,140
‫c'est que

363
00:17:31,090 --> 00:17:33,473
‫nous aurons nos tournées ici.

364
00:17:35,540 --> 00:17:37,623
‫Et cela attendra la requête.

365
00:17:41,310 --> 00:17:43,830
‫La requête est, eh bien, simplement

366
00:17:43,830 --> 00:17:45,533
‫la requête sans attendre.

367
00:17:47,460 --> 00:17:49,360
‫Juste pour que cela soit cohérent avec

368
00:17:49,360 --> 00:17:50,363
‫cette partie

369
00:17:52,060 --> 00:17:53,163
‫ici, procédons comme ceci.

370
00:17:55,603 --> 00:17:57,123
‫Disons que,

371
00:17:58,540 --> 00:18:00,437
‫d'abord, nous construisons la

372
00:18:00,437 --> 00:18:03,363
‫requête, puis nous exécutons la requête.

373
00:18:07,290 --> 00:18:08,313
‫Ce n'est pas correct.

374
00:18:11,490 --> 00:18:13,040
‫Puisque nous faisons des

375
00:18:13,040 --> 00:18:14,330
‫commentaires ici, disons

376
00:18:15,300 --> 00:18:16,790
‫également envoyer une réponse.

377
00:18:16,790 --> 00:18:20,023
‫Juste pour rendre notre code un peu plus facile à scanner.

378
00:18:20,870 --> 00:18:22,380
‫J'espère que tout

379
00:18:22,380 --> 00:18:24,820
‫cela avait du sens, cela s'est avéré être

380
00:18:24,820 --> 00:18:26,780
‫une vidéo assez longue, mais il

381
00:18:26,780 --> 00:18:29,356
‫était important de terminer cette partie ici en

382
00:18:29,356 --> 00:18:31,830
‫vous expliquant cette logique ici, pour que dans

383
00:18:31,830 --> 00:18:34,080
‫les prochaines vidéos, nous puissions ensuite mettre

384
00:18:34,080 --> 00:18:36,110
‫en œuvre le reste des fonctionnalités.

385
00:18:36,110 --> 00:18:37,940
‫Parce que, encore une fois, sans

386
00:18:37,940 --> 00:18:39,983
‫l'avoir comme ça, ça ne fonctionnerait pas.

