﻿1
00:00:01,100 --> 00:00:03,700
‫Instructeur : remplissons maintenant les avis avec

2
00:00:03,700 --> 00:00:06,503
‫les données de l'utilisateur et de la visite.

3
00:00:08,360 --> 00:00:11,470
‫Donc, tout comme l'a fait lors de la

4
00:00:11,470 --> 00:00:14,910
‫visite, faisons en sorte que la visite et l'utilisateur

5
00:00:14,910 --> 00:00:19,330
‫soient automatiquement renseignés chaque fois qu'il y a une requête pour un avis.

6
00:00:19,330 --> 00:00:22,110
‫Comme nous l'avons déjà fait auparavant, je

7
00:00:22,110 --> 00:00:25,140
‫vais maintenant vous lancer un autre défi, d'accord.

8
00:00:25,140 --> 00:00:27,140
‫Je veux donc que vous alliez de l'avant

9
00:00:27,140 --> 00:00:31,060
‫et que vous le fassiez comme nous l'avons fait lors des tournées, mais maintenant pour les critiques.

10
00:00:31,060 --> 00:00:32,850
‫Juste un indice que je

11
00:00:32,850 --> 00:00:35,140
‫dois vous donner avant que vous ne puissiez

12
00:00:35,140 --> 00:00:37,490
‫le faire vous-même, c'est que lorsque vous voulez

13
00:00:37,490 --> 00:00:40,140
‫remplir deux champs, vous devez en fait appeler deux fois.

14
00:00:40,140 --> 00:00:43,430
‫Donc une fois pour chacun des champs, d'accord.

15
00:00:43,430 --> 00:00:45,740
‫Avec ces informations, vous devriez être prêt

16
00:00:45,740 --> 00:00:48,763
‫à mettre la vidéo en pause maintenant et à l'essayer.

17
00:00:52,780 --> 00:00:55,023
‫J'espère donc que ce n'était pas trop dur.

18
00:00:56,070 --> 00:00:59,583
‫Allons de l'avant et fermons simplement quelques fichiers ici, donc

19
00:01:00,850 --> 00:01:04,320
‫tout ce qui n'est pas lié aux critiques, nous n'en

20
00:01:04,320 --> 00:01:05,603
‫avons plus besoin.

21
00:01:06,740 --> 00:01:10,440
‫Passons donc au modèle de révision, puis implémentons

22
00:01:10,440 --> 00:01:12,823
‫ou pré-trouverons un middleware.

23
00:01:14,900 --> 00:01:18,120
‫Nous le faisons donc sur le schéma, comme

24
00:01:18,120 --> 00:01:21,870
‫vous le savez déjà, puis nous utilisons à nouveau une

25
00:01:21,870 --> 00:01:25,883
‫expression régulière pour faire correspondre les chaînes, qui commencent par find.

26
00:01:27,170 --> 00:01:30,100
‫Encore une fois, cela va fonctionner pour find,

27
00:01:30,100 --> 00:01:34,160
‫pour find one, et toutes les autres méthodes find one qui

28
00:01:34,160 --> 00:01:35,710
‫sont disponibles dans Mongoose.

29
00:01:40,960 --> 00:01:44,340
‫Comme toujours, je commence par écrire ensuite.

30
00:01:44,340 --> 00:01:46,180
‫Et maintenant, tout ce que nous avons

31
00:01:46,180 --> 00:01:51,123
‫à faire est d'appeler populate sur la requête actuelle, donc ceci. remplir, et je vais maintenant

32
00:01:53,200 --> 00:01:56,460
‫spécifier l'objet d'options car je veux seulement sélectionner

33
00:01:56,460 --> 00:01:59,550
‫quelques champs et non l'intégralité de la

34
00:01:59,550 --> 00:02:02,573
‫visite, et pas non plus l'utilisateur entier.

35
00:02:03,790 --> 00:02:07,540
‫Alors rappelez-vous, nous commençons par la propriété path, et

36
00:02:07,540 --> 00:02:10,053
‫celle-ci va être pour la tournée.

37
00:02:11,140 --> 00:02:15,280
‫Encore une fois, en spécifiant tour ici, cela signifie que ce champ

38
00:02:15,280 --> 00:02:17,750
‫ici, qui porte le nom exact, sera

39
00:02:17,750 --> 00:02:20,230
‫alors celui qui sera rempli sur la base

40
00:02:20,230 --> 00:02:21,860
‫d'un modèle de tour.

41
00:02:21,860 --> 00:02:25,580
‫Eh bien, parce que c'est ce que nous avons spécifié ici, d'accord.

42
00:02:25,580 --> 00:02:28,530
‫Donc, la référence est à un modèle appelé

43
00:02:28,530 --> 00:02:31,680
‫tour, et en gros c'est dans cette collection où

44
00:02:31,680 --> 00:02:35,533
‫Mongoose va ensuite chercher des documents avec l'ID que nous avons spécifié.

45
00:02:36,640 --> 00:02:41,290
‫D'accord, donc nous voulons une tournée, mais disons que nous ne voulons

46
00:02:42,360 --> 00:02:45,070
‫en fait que le nom de la

47
00:02:45,070 --> 00:02:46,823
‫tournée et rien d'autre.

48
00:02:47,830 --> 00:02:52,140
‫Alors sélectionnez, d'accord, puis juste le nom, puis comme je l'ai dit, si

49
00:02:52,140 --> 00:02:55,680
‫nous voulons remplir plusieurs champs, tout ce que nous avons

50
00:02:55,680 --> 00:02:58,453
‫à faire est d'appeler à nouveau populate.

51
00:03:00,370 --> 00:03:03,950
‫Donc, à ce stade, la requête est remplie avec les visites, et maintenant

52
00:03:03,950 --> 00:03:05,650
‫nous devons la remplir à nouveau,

53
00:03:05,650 --> 00:03:07,123
‫cette fois avec l'utilisateur.

54
00:03:13,130 --> 00:03:15,110
‫Et maintenant, sélectionnez, et

55
00:03:15,110 --> 00:03:19,690
‫cela n'affiche en fait que le nom d'utilisateur et la photo, et

56
00:03:19,690 --> 00:03:22,510
‫pas par exemple, des éléments comme l'e-mail.

57
00:03:22,510 --> 00:03:23,800
‫Supposons donc que

58
00:03:23,800 --> 00:03:26,140
‫quelqu'un accède à l'API pour obtenir tous les

59
00:03:26,140 --> 00:03:28,720
‫avis, mais nous ne voulons pas divulguer tous

60
00:03:28,720 --> 00:03:32,200
‫les détails sur les utilisateurs qui publient ces avis au client.

61
00:03:32,200 --> 00:03:35,550
‫Donc, personne ne devrait vraiment être en mesure

62
00:03:35,550 --> 00:03:39,310
‫de connaître les données privées des évaluateurs, comme les e-mails, d'accord.

63
00:03:39,310 --> 00:03:44,060
‫Donc, encore une fois, nous ne faisons que fuiter, nous n'envoyons que des données pertinentes

64
00:03:44,060 --> 00:03:48,720
‫sur l'utilisateur, et dans ce cas, c'est le nom et la photo, d'accord.

65
00:03:48,720 --> 00:03:51,920
‫Donc, enregistrez-le, et si nous atteignons ou obtenons maintenant

66
00:03:51,920 --> 00:03:54,360
‫tous les points de terminaison des avis,

67
00:03:54,360 --> 00:03:58,070
‫alors déjà la visite et l'utilisateur devraient être renseignés au lieu

68
00:03:58,070 --> 00:04:00,323
‫de simplement voir les identifiants là-bas.

69
00:04:01,320 --> 00:04:04,240
‫Essayons ça, et c'est parti.

70
00:04:04,240 --> 00:04:07,260
‫Donc ça marche, nous obtenons le nom,

71
00:04:07,260 --> 00:04:11,890
‫et bien sûr aussi l'ID, et ensuite la même chose pour l'utilisateur.

72
00:04:11,890 --> 00:04:14,783
‫On obtient donc le nom, mais pas la photo.

73
00:04:15,780 --> 00:04:19,170
‫Voyons donc, peut-être que je n'ai pas compris la propriété de

74
00:04:19,170 --> 00:04:22,160
‫la photo, alors jetons un coup d'œil à cela.

75
00:04:22,160 --> 00:04:26,190
‫Donc le userModel, mais en fait il est là.

76
00:04:26,190 --> 00:04:29,900
‫Non, je suis désolé, bien sûr, nous ne voyons pas la photo car

77
00:04:29,900 --> 00:04:33,463
‫nous n'avons jamais spécifié de photo pour aucun de nos utilisateurs.

78
00:04:34,470 --> 00:04:38,230
‫D'accord, et donc la seule propriété qui existe réellement est le

79
00:04:38,230 --> 00:04:41,550
‫nom, et c'est donc ce que nous obtenons.

80
00:04:41,550 --> 00:04:44,520
‫D'accord, et c'est en fait tout.

81
00:04:44,520 --> 00:04:47,550
‫Très simple, c'est tout ce que nous devons faire pour obtenir

82
00:04:47,550 --> 00:04:49,020
‫toutes les données associées,

83
00:04:49,020 --> 00:04:52,280
‫et exactement comme nous l'avons spécifié dans notre modèle de données.

84
00:04:52,280 --> 00:04:53,900
‫Encore une fois, gardez

85
00:04:53,900 --> 00:04:56,690
‫à l'esprit que celui-ci va ajouter des requêtes

86
00:04:56,690 --> 00:04:59,110
‫supplémentaires, et dans ce cas, il s'agit

87
00:04:59,110 --> 00:05:01,410
‫en fait de deux requêtes, car dans

88
00:05:01,410 --> 00:05:05,200
‫les coulisses, Mongoose devra en fait interroger à la fois les visites

89
00:05:05,200 --> 00:05:08,690
‫et les utilisateurs afin de trouver le document correspondant, d'accord.

90
00:05:08,690 --> 00:05:09,670
‫Cela devrait

91
00:05:09,670 --> 00:05:12,230
‫donc probablement ajouter du temps à la requête.

92
00:05:12,230 --> 00:05:16,340
‫Cela a donc pris 266 millisecondes, comme ça.

93
00:05:16,340 --> 00:05:19,700
‫Pour expérimenter, commentons ce

94
00:05:19,700 --> 00:05:22,593
‫code, puis réessayez.

95
00:05:24,800 --> 00:05:28,340
‫Et cela prend beaucoup de temps, je ne sais pas pourquoi.

96
00:05:28,340 --> 00:05:32,423
‫Alors faisons-le à nouveau, et donc vous voyez, 157

97
00:05:33,280 --> 00:05:37,033
‫millisecondes, et si nous le remettons maintenant, recommencez.

98
00:05:39,080 --> 00:05:40,560
‫Et encore une fois, cela prend beaucoup

99
00:05:40,560 --> 00:05:42,750
‫de temps, et encore une fois, je le fais deux fois.

100
00:05:42,750 --> 00:05:45,900
‫Mais vous voyez toujours que cela a pris un peu plus de temps, d'accord.

101
00:05:45,900 --> 00:05:47,570
‫Donc pas la fin

102
00:05:47,570 --> 00:05:50,450
‫du monde, c'était juste 100 millisecondes de plus, mais

103
00:05:50,450 --> 00:05:52,330
‫quand vous atteignez une certaine

104
00:05:52,330 --> 00:05:54,410
‫échelle, cela pourrait faire une différence.

105
00:05:54,410 --> 00:05:57,580
‫Donc encore une fois, je veux juste que vous gardiez cela à l'esprit.

106
00:05:57,580 --> 00:06:01,113
‫Quoi qu'il en soit, c'est tout pour cette conférence, alors passons maintenant.

