﻿1
00:00:01,090 --> 00:00:03,300
‫Instructeur : En tant que fonctionnalité suivante de

2
00:00:03,300 --> 00:00:04,910
‫notre API, nous avons une

3
00:00:04,910 --> 00:00:07,290
‫limitation de champ, donc, essentiellement, afin de permettre aux

4
00:00:07,290 --> 00:00:08,900
‫clients de choisir les champs

5
00:00:08,900 --> 00:00:10,543
‫qu'ils souhaitent récupérer dans la réponse.

6
00:00:11,960 --> 00:00:14,530
‫Ainsi, pour un client, il est toujours

7
00:00:14,530 --> 00:00:16,980
‫idéal de recevoir le moins de

8
00:00:16,980 --> 00:00:19,170
‫données possible, afin de réduire

9
00:00:19,170 --> 00:00:21,890
‫la bande passante consommée à chaque requête.

10
00:00:21,890 --> 00:00:23,890
‫Et c'est, bien sûr, particulièrement vrai

11
00:00:23,890 --> 00:00:27,650
‫lorsque nous avons des ensembles de données vraiment volumineux, n'est-ce pas ?

12
00:00:27,650 --> 00:00:29,470
‫C'est donc une fonctionnalité très

13
00:00:29,470 --> 00:00:33,793
‫intéressante de permettre à l'utilisateur de l'API de ne demander que certains champs.

14
00:00:36,470 --> 00:00:41,323
‫Ainsi, comme troisième caractéristique, nous aurons une limitation de champ.

15
00:00:42,460 --> 00:00:45,280
‫Et, comme avant, permettez-moi de commencer par vous montrer

16
00:00:45,280 --> 00:00:47,823
‫comment cela va fonctionner ici dans Postman.

17
00:00:49,130 --> 00:00:53,083
‫Donc, nous allons spécifier un champ appelé champs, puis le

18
00:00:53,083 --> 00:00:54,710
‫nom des champs

19
00:00:54,710 --> 00:00:56,810
‫que nous voulons réellement recevoir.

20
00:00:56,810 --> 00:00:58,853
‫Alors disons que nous

21
00:01:00,720 --> 00:01:01,773
‫voulons seulement

22
00:01:03,570 --> 00:01:08,570
‫le nom, la durée, la difficulté et le prix, d'accord.

23
00:01:08,600 --> 00:01:11,580
‫Et donc, l'implémentation sera en fait très similaire à ce que

24
00:01:11,580 --> 00:01:13,513
‫nous faisions auparavant avec le tri.

25
00:01:14,860 --> 00:01:19,417
‫Donc, si req. mettre en doute. champs, alors créons

26
00:01:22,400 --> 00:01:24,270
‫encore une fois une

27
00:01:24,270 --> 00:01:28,310
‫variable pour ces champs ici car, comme avant, Mongodbs demande

28
00:01:28,310 --> 00:01:30,610
‫en fait une chaîne avec le

29
00:01:30,610 --> 00:01:34,100
‫nom du champ séparé par des espaces, d'accord ?

30
00:01:34,100 --> 00:01:36,100
‫Maintenant, permettez-moi de

31
00:01:36,100 --> 00:01:40,883
‫commencer par écrire cette partie, d'accord, donc la requête elle-même.

32
00:01:41,770 --> 00:01:45,887
‫Donc la requête est égale à la requête. sélectionnez, d'accord ?

33
00:01:48,710 --> 00:01:51,740
‫Et ici, par exemple, il attend une

34
00:01:51,740 --> 00:01:56,740
‫chaîne comme, nom puis espace, durée et un prix par exemple, d'accord.

35
00:01:59,420 --> 00:02:01,540
‫Et donc de cette façon, il

36
00:02:01,540 --> 00:02:04,070
‫ne sélectionnera que ces trois noms de champs

37
00:02:04,070 --> 00:02:07,020
‫et renverra le résultat ne contenant que cela, d'accord ?

38
00:02:07,020 --> 00:02:09,150
‫Et en fait, cette opération

39
00:02:09,150 --> 00:02:14,150
‫de sélection de certains noms de champs seulement s'appelle la projection d'accord ?

40
00:02:14,720 --> 00:02:17,110
‫Alors, allons de l'avant

41
00:02:17,110 --> 00:02:21,930
‫et créons fondamentalement la chaîne, comme nous l'avons fait là-haut, d'accord.

42
00:02:21,930 --> 00:02:26,930
‫Nous commençons donc par req. mettre en doute. champs, puis nous le divisons par

43
00:02:28,047 --> 00:02:29,663
‫une virgule et le

44
00:02:30,840 --> 00:02:32,490
‫joignons avec une chaîne vide.

45
00:02:33,800 --> 00:02:36,570
‫Avec un espace en fait, désolé.

46
00:02:36,570 --> 00:02:38,590
‫Donc avec l'espace et

47
00:02:38,590 --> 00:02:42,683
‫ça va alors produire cette chaîne exacte avec ce format exact.

48
00:02:44,160 --> 00:02:47,033
‫Alors ici, tout ce que nous avons à faire est d'utiliser ces champs.

49
00:02:49,490 --> 00:02:53,150
‫Ensuite, comme avant, je souhaite également ajouter

50
00:02:53,150 --> 00:02:57,280
‫une valeur par défaut, donc au cas où l'utilisateur

51
00:02:57,280 --> 00:03:01,240
‫ne spécifierait pas le champ des champs, d'accord,

52
00:03:03,230 --> 00:03:08,230
‫donc, dans ce cas, nous supprimerons simplement quelque chose, d'accord ?

53
00:03:08,540 --> 00:03:12,870
‫Et laissez-moi vous montrer cela d'abord, donc ici, nous avons

54
00:03:12,870 --> 00:03:16,880
‫toujours ce trait de soulignement V, qui est défini

55
00:03:16,880 --> 00:03:21,000
‫sur zéro, et Mongodbs crée simplement ces champs car il

56
00:03:21,000 --> 00:03:23,020
‫les utilise en interne.

57
00:03:23,020 --> 00:03:25,850
‫Et nous pourrions les désactiver, mais ce n'est pas une bonne pratique.

58
00:03:25,850 --> 00:03:29,094
‫Encore une fois, parce que Mongodbs les utilise réellement, d'accord, mais

59
00:03:29,094 --> 00:03:31,530
‫ce que nous pouvons faire, c'est de

60
00:03:31,530 --> 00:03:34,725
‫ne jamais les envoyer au client, donc nous pouvons les exclure.

61
00:03:34,725 --> 00:03:38,470
‫Et la façon dont nous le faisons est de, au lieu de

62
00:03:38,470 --> 00:03:41,290
‫faire un trait de soulignement V comme avant, donc

63
00:03:41,290 --> 00:03:43,320
‫comme nous l'avons fait ici, en

64
00:03:43,320 --> 00:03:46,490
‫gros, nous le préfixons simplement avec un moins, d'accord ?

65
00:03:46,490 --> 00:03:49,860
‫Et le moins n'est donc pas inclus, mais exclu.

66
00:03:49,860 --> 00:03:51,690
‫Donc ce que nous avions

67
00:03:51,690 --> 00:03:53,900
‫avant ici encore, avec le nom et la

68
00:03:53,900 --> 00:03:56,890
‫durée et le prix, c'était d'inclure ces champs dans la réponse.

69
00:03:56,890 --> 00:03:58,580
‫Mais comme ça, avec

70
00:03:58,580 --> 00:04:02,560
‫le moins, on a tout sauf le champ V ici d'accord ?

71
00:04:02,560 --> 00:04:05,903
‫Nous excluons donc uniquement ce champ, d'accord ?

72
00:04:07,060 --> 00:04:08,660
‫Alors allons-y et testons cela.

73
00:04:09,870 --> 00:04:14,870
‫Envoyez-le, et attendons-le et ouais, en effet, l'ID est

74
00:04:15,430 --> 00:04:18,250
‫par défaut, toujours inclus d'accord?

75
00:04:18,250 --> 00:04:21,140
‫Nous ne pouvons donc pas supprimer cela, mais en

76
00:04:21,140 --> 00:04:24,700
‫plus de cela, nous n'avons que le nom, la durée, la difficulté

77
00:04:24,700 --> 00:04:28,360
‫et le prix, d'accord, et nous pourrions, bien sûr, également utiliser ce

78
00:04:28,360 --> 00:04:31,070
‫moins pour que cette exclusion soit également ici.

79
00:04:31,070 --> 00:04:33,570
‫On pourrait donc tout avoir, moins le nom

80
00:04:33,570 --> 00:04:35,653
‫et moins la durée, par exemple.

81
00:04:38,280 --> 00:04:40,200
‫Alors testons cela aussi.

82
00:04:40,200 --> 00:04:44,160
‫Et donc, si vous le cochez maintenant, vous ne verrez pas le nom,

83
00:04:44,160 --> 00:04:46,853
‫et ne verrez la durée nulle part ici.

84
00:04:48,635 --> 00:04:50,690
‫Bon, et maintenant juste comme test

85
00:04:50,690 --> 00:04:53,670
‫final, voyons si notre valeur par défaut fonctionne également.

86
00:04:53,670 --> 00:04:56,930
‫Envoi de la réponse et donc, maintenant nous

87
00:04:56,930 --> 00:05:01,410
‫n'avons plus cette variable V ici mise à zéro dans tous les documents.

88
00:05:01,410 --> 00:05:04,840
‫D'accord, super, maintenant il y a une dernière chose que je

89
00:05:04,840 --> 00:05:06,520
‫veux vous montrer, c'est

90
00:05:06,520 --> 00:05:09,950
‫que nous pouvons également exclure des champs directement du schéma.

91
00:05:09,950 --> 00:05:11,680
‫D'accord, et cela peut être très

92
00:05:11,680 --> 00:05:13,573
‫utile, par exemple, lorsque nous avons des

93
00:05:13,573 --> 00:05:15,720
‫données sensibles qui ne doivent être utilisées qu'en interne.

94
00:05:15,720 --> 00:05:17,261
‫Par exemple, des éléments tels

95
00:05:17,261 --> 00:05:19,750
‫que les mots de passe ne doivent jamais être exposés

96
00:05:19,750 --> 00:05:21,320
‫au client et, par conséquent, nous

97
00:05:21,320 --> 00:05:23,372
‫pouvons exclure certains champs directement dans le schéma.

98
00:05:23,372 --> 00:05:26,320
‫Ainsi, par exemple, nous pourrions ne pas vouloir

99
00:05:26,320 --> 00:05:29,780
‫que l'utilisateur sache quand exactement chaque visite a été créée.

100
00:05:29,780 --> 00:05:31,950
‫Par exemple, la tournée peut déjà

101
00:05:31,950 --> 00:05:34,020
‫être un peu ancienne

102
00:05:34,020 --> 00:05:38,320
‫ou quelque chose du genre et donc, disons que nous voulons toujours

103
00:05:38,320 --> 00:05:40,753
‫masquer ce champ createdAt, d'accord, afin

104
00:05:42,050 --> 00:05:44,800
‫que nous puissions entrer dans notre schéma, qui

105
00:05:44,800 --> 00:05:47,950
‫est dans le modèle de tournée bien sûr, puis

106
00:05:47,950 --> 00:05:52,023
‫à createdAt, nous définissons simplement la propriété select ici sur false.

107
00:05:54,050 --> 00:05:58,090
‫Et maintenant, quand nous essayons d'obtenir nos résultats, vous voyez qu'en fait

108
00:05:58,090 --> 00:06:00,490
‫ce n'est plus là, d'accord ?

109
00:06:02,090 --> 00:06:03,460
‫Et donc comme ça,

110
00:06:03,460 --> 00:06:06,690
‫nous pouvons fondamentalement, cacher cela de façon permanente à la sortie.

111
00:06:06,690 --> 00:06:11,110
‫Parfait, donc une autre fonctionnalité qui fonctionne réellement maintenant et

112
00:06:11,110 --> 00:06:13,723
‫passons maintenant à la suivante.

