﻿1
00:00:01,170 --> 00:00:02,830
‫Kursleiter: Also haben

2
00:00:02,830 --> 00:00:05,060
‫wir im letzten Video Benutzer in

3
00:00:05,060 --> 00:00:06,870
‫Touren eingebettet und auch über

4
00:00:06,870 --> 00:00:10,010
‫die Nachteile dieses Ansatzes in unserer speziellen Situation gesprochen.

5
00:00:10,010 --> 00:00:13,010
‫Lassen Sie uns in diesem Video also

6
00:00:13,010 --> 00:00:17,443
‫Touren und Benutzer nicht durch Einbetten, sondern durch eine Referenz verbinden.

7
00:00:19,050 --> 00:00:19,883
‫Lassen Sie

8
00:00:19,883 --> 00:00:24,883
‫uns also zunächst den Code loswerden, den wir in der letzten Vorlesung geschrieben haben.

9
00:00:24,920 --> 00:00:26,350
‫Okay, also dieser hier,

10
00:00:26,350 --> 00:00:29,533
‫der im Grunde für die Durchführung der Einbettung verantwortlich ist.

11
00:00:30,650 --> 00:00:33,800
‫Und nun gehen wir hier zu unserem Guides-Feld.

12
00:00:33,800 --> 00:00:34,670
‫Okay?

13
00:00:34,670 --> 00:00:36,570
‫Diesmal in diesem

14
00:00:36,570 --> 00:00:40,860
‫Video ist die Idee, dass Touren und Benutzer in

15
00:00:40,860 --> 00:00:43,760
‫unserer Datenbank immer vollständig getrennte Einheiten bleiben.

16
00:00:43,760 --> 00:00:44,593
‫Okay?

17
00:00:44,593 --> 00:00:47,130
‫Alles, was wir auf einem bestimmten Tourdokument speichern,

18
00:00:47,130 --> 00:00:50,290
‫sind also die IDs der Benutzer, die die Tourguides für

19
00:00:50,290 --> 00:00:52,000
‫diese bestimmte Tour sind.

20
00:00:52,000 --> 00:00:53,900
‫Wenn wir dann die Tour

21
00:00:53,900 --> 00:00:57,170
‫abfragen, möchten wir automatisch Zugriff auf die Tourguides erhalten.

22
00:00:57,170 --> 00:00:59,450
‫Aber auch hier, ohne dass sie

23
00:00:59,450 --> 00:01:02,060
‫tatsächlich auf dem Tourdokument selbst gespeichert werden.

24
00:01:02,060 --> 00:01:04,320
‫Und genau das ist Referenz.

25
00:01:04,320 --> 00:01:08,150
‫So wie wir zu Beginn dieses Abschnitts besprochen haben.

26
00:01:08,150 --> 00:01:08,983
‫Gut?

27
00:01:08,983 --> 00:01:10,020
‫Lassen Sie mich

28
00:01:10,020 --> 00:01:13,419
‫Ihnen nun zeigen, wie wir die Referenzierung mit Mongoose implementieren können.

29
00:01:13,419 --> 00:01:14,450
‫Okay?

30
00:01:14,450 --> 00:01:18,545
‫Hier in den Anleitungen wollen wir nun ein Array angeben.

31
00:01:18,545 --> 00:01:19,610
‫Okay?

32
00:01:19,610 --> 00:01:23,000
‫Also genau wie wir es zuvor mit den Standorten gemacht haben.

33
00:01:23,000 --> 00:01:24,510
‫Und das bedeutet dann

34
00:01:24,510 --> 00:01:26,930
‫wiederum, dass dies einige Unterdokumente sein werden.

35
00:01:26,930 --> 00:01:28,770
‫Also eingebettete Dokumente.

36
00:01:28,770 --> 00:01:29,603
‫Gut?

37
00:01:30,480 --> 00:01:32,360
‫Und jetzt wird der Typ ein

38
00:01:32,360 --> 00:01:35,470
‫neuer Typ sein, den wir noch nie zuvor gesehen haben.

39
00:01:35,470 --> 00:01:40,470
‫Und das ist Mungo. Schema. Objekt Identifikation.

40
00:01:44,715 --> 00:01:45,599
‫Okay?

41
00:01:45,599 --> 00:01:47,874
‫Und das bedeutet, dass wir

42
00:01:47,874 --> 00:01:49,780
‫erwarten, dass ein Typ

43
00:01:49,780 --> 00:01:53,220
‫jedes der Elemente im Guides-Array eine MongoDB-ID ist.

44
00:01:53,220 --> 00:01:54,053
‫Gut?

45
00:01:54,053 --> 00:01:57,220
‫Und hier muss es tatsächlich ein großes O

46
00:01:57,220 --> 00:01:59,520
‫sein, okay, sonst wird

47
00:01:59,520 --> 00:02:03,880
‫es nicht funktionieren, und auch das alles hier muss innerhalb eines

48
00:02:03,880 --> 00:02:06,880
‫Objekts sein, genau wie jede andere Schematypdefinition.

49
00:02:06,880 --> 00:02:09,403
‫Okay, denn das ist wirklich alles.

50
00:02:11,140 --> 00:02:16,140
‫Okay, der Typ ist also im Grunde diese MongoDB-ID, und dann müssen

51
00:02:16,670 --> 00:02:20,303
‫wir jetzt auch noch die Referenz angeben.

52
00:02:21,210 --> 00:02:24,020
‫Und hier passiert die Magie hinter den

53
00:02:24,020 --> 00:02:28,630
‫Kulissen, denn hier sagen wir jetzt, dass die Referenz der Benutzer sein sollte.

54
00:02:28,630 --> 00:02:32,140
‫Okay, und so stellen wir wirklich Referenzen

55
00:02:32,140 --> 00:02:35,170
‫zwischen verschiedenen Datensätzen in Mongoose her.

56
00:02:35,170 --> 00:02:37,540
‫Und dafür brauchen wir eigentlich

57
00:02:37,540 --> 00:02:42,060
‫nicht einmal den Benutzer, der in dieses Dokument importiert werden soll.

58
00:02:42,060 --> 00:02:44,910
‫Das hatten wir hier also tatsächlich, aber wir brauchen es nicht einmal.

59
00:02:44,910 --> 00:02:46,970
‫Das hatten wir hier für den vorherigen

60
00:02:46,970 --> 00:02:48,620
‫Vortrag, aber wir können

61
00:02:48,620 --> 00:02:52,455
‫es auskommentieren, denn was wir gerade hier gemacht haben, wird immer noch funktionieren.

62
00:02:52,455 --> 00:02:53,950
‫Okay?

63
00:02:53,950 --> 00:02:57,420
‫Also, lass uns jetzt eine neue Tour erstellen und eigentlich werde ich

64
00:02:57,420 --> 00:03:00,370
‫es genauso machen wie wir es vorher gemacht haben.

65
00:03:01,440 --> 00:03:03,973
‫Also lass uns einfach weitermachen und diesen löschen.

66
00:03:05,400 --> 00:03:06,833
‫Wo ist der Ausweis?

67
00:03:08,931 --> 00:03:10,560
‫Auf geht's.

68
00:03:10,560 --> 00:03:11,933
‫Also Tour löschen.

69
00:03:14,760 --> 00:03:17,113
‫Dafür können wir unsere API bereits nutzen.

70
00:03:19,700 --> 00:03:23,600
‫Alles klar, und jetzt erstellen wir eine neue Tour.

71
00:03:23,600 --> 00:03:24,930
‫Und so wie

72
00:03:24,930 --> 00:03:28,950
‫zuvor geben wir nur ein Array der IDs in die Leitfäden ein.

73
00:03:28,950 --> 00:03:29,783
‫Gut?

74
00:03:29,783 --> 00:03:31,226
‫Aber dieses Mal haben

75
00:03:31,226 --> 00:03:35,010
‫wir tatsächlich angegeben, dass eine Objekt-ID genau das ist, was wir erwarten.

76
00:03:35,010 --> 00:03:35,843
‫Rechts?

77
00:03:35,843 --> 00:03:39,420
‫Dies hier ist also vom Typ Objekt-ID.

78
00:03:39,420 --> 00:03:42,957
‫Aber hinter den Kulissen wird es auch auf den Benutzer verwiesen.

79
00:03:42,957 --> 00:03:44,200
‫Gut?

80
00:03:44,200 --> 00:03:47,300
‫Wenn wir diese Tour jetzt hier erstellen,

81
00:03:47,300 --> 00:03:50,090
‫enthält sie also tatsächlich nur diese

82
00:03:50,090 --> 00:03:53,640
‫IDs und nicht den Benutzer, der den IDs entspricht.

83
00:03:53,640 --> 00:03:55,090
‫Schauen wir uns das also an.

84
00:03:56,500 --> 00:03:59,040
‫Und so ja, los geht's.

85
00:03:59,040 --> 00:04:01,720
‫Das sind also genau die Daten, die wir eingegeben haben.

86
00:04:01,720 --> 00:04:04,430
‫Nur die Ausweise der Reiseleiter.

87
00:04:04,430 --> 00:04:07,010
‫Okay, und genau das haben wir erwartet.

88
00:04:07,010 --> 00:04:09,410
‫Denn im Moment haben wir nur

89
00:04:09,410 --> 00:04:11,790
‫die Referenzen in Mongoose.

90
00:04:11,790 --> 00:04:14,430
‫Und wir kümmern uns dann darum, dass die

91
00:04:14,430 --> 00:04:17,730
‫Daten tatsächlich in unserer Ausgabe im nächsten Video angezeigt werden.

92
00:04:17,730 --> 00:04:20,330
‫Okay, denn wir werden das auf zwei verschiedene Arten tun.

93
00:04:21,210 --> 00:04:24,323
‫Schauen wir uns Compass auch ganz schnell

94
00:04:25,930 --> 00:04:30,930
‫hier an, nur um das auch zu sehen, wo ist das, ja, hier.

95
00:04:30,960 --> 00:04:33,680
‫Sie sehen also tatsächlich die Objekt-ID und

96
00:04:33,680 --> 00:04:36,480
‫dann natürlich die IDs, die wir übergeben haben.

97
00:04:36,480 --> 00:04:39,960
‫Also, wie wir es bei Touren und Benutzern erwartet hatten,

98
00:04:39,960 --> 00:04:42,620
‫immer noch zwei völlig unterschiedliche Einheiten.

99
00:04:42,620 --> 00:04:44,860
‫Und wie bereits erwähnt, kümmern wir uns

100
00:04:44,860 --> 00:04:47,290
‫im nächsten Video dann darum, die Benutzerdaten

101
00:04:47,290 --> 00:04:49,030
‫in der Ausgabe tatsächlich

102
00:04:49,030 --> 00:04:51,533
‫anzuzeigen, indem wir einen Prozess namens Auffüllen verwenden.

