﻿1
00:00:01,100 --> 00:00:03,700
‫Kursleiter: Lassen Sie uns nun die Bewertungen sowohl

2
00:00:03,700 --> 00:00:06,503
‫mit den Benutzer- als auch mit den Tourdaten füllen.

3
00:00:08,360 --> 00:00:11,470
‫Also, genau wie bei der Tour, lassen Sie uns

4
00:00:11,470 --> 00:00:14,910
‫jetzt so machen, dass sowohl die Tour als auch der

5
00:00:14,910 --> 00:00:19,330
‫Benutzer jedes Mal automatisch ausgefüllt werden, wenn eine Abfrage für eine Überprüfung erfolgt.

6
00:00:19,330 --> 00:00:22,110
‫Da wir das schon früher gemacht haben,

7
00:00:22,110 --> 00:00:25,140
‫gebe ich dir jetzt noch eine weitere Herausforderung, okay.

8
00:00:25,140 --> 00:00:27,140
‫Ich möchte, dass Sie es genauso

9
00:00:27,140 --> 00:00:31,060
‫machen wie wir es bei den Touren getan haben, aber jetzt zu den Bewertungen.

10
00:00:31,060 --> 00:00:32,850
‫Ich muss Ihnen nur

11
00:00:32,850 --> 00:00:35,140
‫einen Hinweis geben, bevor Sie dies

12
00:00:35,140 --> 00:00:37,490
‫selbst tun können: Wenn Sie zwei Felder

13
00:00:37,490 --> 00:00:40,140
‫ausfüllen möchten, müssen Sie populate tatsächlich zweimal aufrufen.

14
00:00:40,140 --> 00:00:43,430
‫Also einmal für jedes der Felder, in Ordnung.

15
00:00:43,430 --> 00:00:45,740
‫Mit diesen Informationen sollten Sie

16
00:00:45,740 --> 00:00:48,763
‫das Video jetzt anhalten und es ausprobieren.

17
00:00:52,780 --> 00:00:55,023
‫Also ich hoffe das war nicht zu schwer.

18
00:00:56,070 --> 00:00:59,583
‫Lassen Sie uns hier einfach einige Dateien schließen, damit

19
00:01:00,850 --> 00:01:04,320
‫wir alles, was nicht mit Bewertungen zu tun hat,

20
00:01:04,320 --> 00:01:05,603
‫nicht mehr benötigen.

21
00:01:06,740 --> 00:01:10,440
‫Lassen Sie uns also einfach zum Überprüfungsmodell gehen und dann

22
00:01:10,440 --> 00:01:12,823
‫Middleware implementieren oder vorab finden.

23
00:01:14,900 --> 00:01:18,120
‫Also machen wir das auf dem Schema,

24
00:01:18,120 --> 00:01:21,870
‫wie Sie bereits wissen, und verwenden dann wieder einen regulären

25
00:01:21,870 --> 00:01:25,883
‫Ausdruck, um im Grunde Strings abzugleichen, die mit find beginnen.

26
00:01:27,170 --> 00:01:30,100
‫Dies wird also wieder für find, für

27
00:01:30,100 --> 00:01:34,160
‫find one und alle anderen find one-Methoden funktionieren, die in

28
00:01:34,160 --> 00:01:35,710
‫Mongoose verfügbar sind.

29
00:01:40,960 --> 00:01:44,340
‫Wie immer beginne ich mit dem Schreiben als nächstes.

30
00:01:44,340 --> 00:01:46,180
‫Und jetzt müssen wir nur

31
00:01:46,180 --> 00:01:51,123
‫noch populate für die aktuelle Abfrage aufrufen. auffüllen, und ich werde jetzt

32
00:01:53,200 --> 00:01:56,460
‫tatsächlich das Optionsobjekt angeben, weil ich nur ein

33
00:01:56,460 --> 00:01:59,550
‫paar Felder auswählen möchte und nicht die gesamte

34
00:01:59,550 --> 00:02:02,573
‫Tour und auch nicht den gesamten Benutzer.

35
00:02:03,790 --> 00:02:07,540
‫Denken Sie also daran, dass wir mit der Pfadeigenschaft beginnen, und

36
00:02:07,540 --> 00:02:10,053
‫diese wird für die Tour bestimmt sein.

37
00:02:11,140 --> 00:02:15,280
‫Die Angabe von Tour hier bedeutet also wiederum, dass dieses Feld

38
00:02:15,280 --> 00:02:17,750
‫hier, das den genauen Namen hat,

39
00:02:17,750 --> 00:02:20,230
‫dann dasjenige ist, das basierend auf einem

40
00:02:20,230 --> 00:02:21,860
‫Tourmodell gefüllt wird.

41
00:02:21,860 --> 00:02:25,580
‫Nun, denn das haben wir hier angegeben, okay.

42
00:02:25,580 --> 00:02:28,530
‫Die Referenz bezieht sich also auf ein Modell namens

43
00:02:28,530 --> 00:02:31,680
‫tour, und im Grunde befindet es sich in dieser Sammlung,

44
00:02:31,680 --> 00:02:35,533
‫in der Mongoose dann nach Dokumenten mit der von uns angegebenen ID sucht.

45
00:02:36,640 --> 00:02:41,290
‫Okay, wir wollen also eine Tour, aber sagen wir dann,

46
00:02:42,360 --> 00:02:45,070
‫wir wollen eigentlich nur den Tournamen

47
00:02:45,070 --> 00:02:46,823
‫und sonst nichts.

48
00:02:47,830 --> 00:02:52,140
‫Wählen Sie also, okay, und dann nur den Namen, und dann,

49
00:02:52,140 --> 00:02:55,680
‫wie gesagt, wenn wir mehrere Felder ausfüllen möchten,

50
00:02:55,680 --> 00:02:58,453
‫müssen wir nur noch populate aufrufen.

51
00:03:00,370 --> 00:03:03,950
‫An diesem Punkt ist die Abfrage also mit den Touren gefüllt, und

52
00:03:03,950 --> 00:03:05,650
‫jetzt müssen wir sie erneut auffüllen,

53
00:03:05,650 --> 00:03:07,123
‫diesmal mit dem Benutzer.

54
00:03:13,130 --> 00:03:15,110
‫Und jetzt auswählen, und

55
00:03:15,110 --> 00:03:19,690
‫das wird eigentlich nur den Benutzernamen und das Foto anzeigen

56
00:03:19,690 --> 00:03:22,510
‫und nicht zum Beispiel die E-Mail.

57
00:03:22,510 --> 00:03:23,800
‫Angenommen, jemand ruft

58
00:03:23,800 --> 00:03:26,140
‫die API auf, um alle Bewertungen

59
00:03:26,140 --> 00:03:28,720
‫abzurufen, aber wir möchten nicht alle Details über

60
00:03:28,720 --> 00:03:32,200
‫die Benutzer preisgeben, die diese Bewertungen an den Client senden.

61
00:03:32,200 --> 00:03:35,550
‫Also sollte niemand die privaten Daten

62
00:03:35,550 --> 00:03:39,310
‫der Rezensenten, wie E-Mails, wirklich erfahren können, okay.

63
00:03:39,310 --> 00:03:44,060
‫Also, wir lecken nur, wir senden nur relevante Daten über den Benutzer, und

64
00:03:44,060 --> 00:03:48,720
‫in diesem Fall sind es der Name und das Foto, okay.

65
00:03:48,720 --> 00:03:51,920
‫Speichern Sie dies also, und wenn wir jetzt den

66
00:03:51,920 --> 00:03:54,360
‫Endpunkt aller Bewertungen treffen oder abrufen, dann

67
00:03:54,360 --> 00:03:58,070
‫sollten bereits die Tour und der Benutzer ausgefüllt sein, anstatt nur

68
00:03:58,070 --> 00:04:00,323
‫die IDs dort zu sehen.

69
00:04:01,320 --> 00:04:04,240
‫Versuchen wir es und los geht's.

70
00:04:04,240 --> 00:04:07,260
‫Also das funktioniert, wir bekommen den Namen

71
00:04:07,260 --> 00:04:11,890
‫und natürlich auch die ID und dann das gleiche für den Benutzer.

72
00:04:11,890 --> 00:04:14,783
‫So bekommen wir den Namen, aber dann nicht das Foto.

73
00:04:15,780 --> 00:04:19,170
‫Mal sehen, vielleicht habe ich es nicht geschafft, die photo-Eigenschaft

74
00:04:19,170 --> 00:04:22,160
‫anzugeben, also schauen wir uns das an.

75
00:04:22,160 --> 00:04:26,190
‫Also das userModel, aber eigentlich ist es da.

76
00:04:26,190 --> 00:04:29,900
‫Nein, tut mir leid, natürlich sehen wir das Foto nicht, da

77
00:04:29,900 --> 00:04:33,463
‫wir für keinen unserer Benutzer ein Foto angegeben haben.

78
00:04:34,470 --> 00:04:38,230
‫Okay, und daher ist die einzige Eigenschaft, die tatsächlich existiert,

79
00:04:38,230 --> 00:04:41,550
‫der Name, und den erhalten wir dann.

80
00:04:41,550 --> 00:04:44,520
‫Okay, und das ist es tatsächlich.

81
00:04:44,520 --> 00:04:47,550
‫So ganz einfach, das ist alles, was wir tun müssen, um

82
00:04:47,550 --> 00:04:49,020
‫alle zugehörigen Daten zu erhalten,

83
00:04:49,020 --> 00:04:52,280
‫und zwar genau so, wie wir es in unserem Datenmodell festgelegt haben.

84
00:04:52,280 --> 00:04:53,900
‫Denken Sie noch

85
00:04:53,900 --> 00:04:56,690
‫einmal daran, dass diese Abfrage einige zusätzliche Abfragen

86
00:04:56,690 --> 00:04:59,110
‫hinzufügen wird, und in diesem Fall

87
00:04:59,110 --> 00:05:01,410
‫sind es tatsächlich zwei Abfragen, da

88
00:05:01,410 --> 00:05:05,200
‫Mongoose hinter den Kulissen tatsächlich sowohl die Touren als auch die

89
00:05:05,200 --> 00:05:08,690
‫Benutzer abfragen muss, um zu finden das passende Dokument, ok.

90
00:05:08,690 --> 00:05:09,670
‫Das sollte also

91
00:05:09,670 --> 00:05:12,230
‫hier wohl etwas Zeit in die Abfrage einbringen.

92
00:05:12,230 --> 00:05:16,340
‫Es dauerte also 266 Millisekunden.

93
00:05:16,340 --> 00:05:19,700
‫Kommentieren wir diesen Code einfach zu Experimentierzwecken aus

94
00:05:19,700 --> 00:05:22,593
‫und versuchen Sie es dann erneut.

95
00:05:24,800 --> 00:05:28,340
‫Und das dauert viel Zeit, ich weiß nicht warum.

96
00:05:28,340 --> 00:05:32,423
‫Machen wir es noch einmal, und Sie sehen, 157 Millisekunden, und

97
00:05:33,280 --> 00:05:37,033
‫wenn wir es jetzt zurücksetzen, machen wir es noch einmal.

98
00:05:39,080 --> 00:05:40,560
‫Und wieder dauert es viel

99
00:05:40,560 --> 00:05:42,750
‫Zeit, und deshalb mache ich es wieder zweimal.

100
00:05:42,750 --> 00:05:45,900
‫Aber du siehst trotzdem, dass es etwas länger gedauert hat, okay.

101
00:05:45,900 --> 00:05:47,570
‫Also nicht das Ende

102
00:05:47,570 --> 00:05:50,450
‫der Welt, es waren nur 100 Millisekunden mehr, aber

103
00:05:50,450 --> 00:05:52,330
‫wenn man einen bestimmten Maßstab

104
00:05:52,330 --> 00:05:54,410
‫erreicht, kann das einen Unterschied machen.

105
00:05:54,410 --> 00:05:57,580
‫Ich möchte nur, dass Sie das noch einmal im Hinterkopf behalten.

106
00:05:57,580 --> 00:06:01,113
‫Wie auch immer, das war's für diesen Vortrag, also lasst uns jetzt weitermachen.

