1
00:00:03,680 --> 00:00:06,035
In der vorherigen

2
00:00:06,035 --> 00:00:08,550
Lektion haben wir etwas über den MongoDB-Treiber erfahren.

3
00:00:08,550 --> 00:00:14,250
Das ermöglicht es unserer Knotenanwendung, mit einem MongoDB-Server zu kommunizieren

4
00:00:14,250 --> 00:00:19,660
und Dokumente vom MongoDB-Server zu speichern und abzurufen.

5
00:00:19,660 --> 00:00:23,310
Wir haben auch gesehen, dass der MongoDB-Treiber uns

6
00:00:23,310 --> 00:00:28,770
viele Methoden zur Verfügung stellt, die es uns ermöglichen, Sammlungen innerhalb einer Datenbank

7
00:00:28,770 --> 00:00:30,925
zu erstellen, Dokumente zu den Sammlungen hinzuzufügen

8
00:00:30,925 --> 00:00:35,695
und dann verschiedene Operationen an den Dokumenten innerhalb einer Sammlung durchzuführen.

9
00:00:35,695 --> 00:00:41,060
Jetzt, wenn die Dokumente in der Datenbank gespeichert sind,

10
00:00:41,060 --> 00:00:46,330
legt der MongoDB-Treiber selbst keine Struktur auf die Dokumente.

11
00:00:46,330 --> 00:00:52,640
Wenn wir eine spezifische Struktur für die Dokumente haben und diese Struktur durchsetzen müssen,

12
00:00:52,640 --> 00:00:58,505
dann müssen wir das Mongoose-Knotenmodul verwenden, das es uns ermöglicht,

13
00:00:58,505 --> 00:01:05,015
ein Schema und eine Struktur für unsere Dokumente zu definieren, die in unserer MongoDB-Datenbank gespeichert sind,

14
00:01:05,015 --> 00:01:08,275
und die Struktur strikt durchsetzt.

15
00:01:08,275 --> 00:01:16,035
Schauen wir uns weitere Details in dieser Vorlesung und die Übungen an, die dieser Vorlesung folgen.

16
00:01:16,035 --> 00:01:18,540
Wie wir bereits gelernt haben,

17
00:01:18,540 --> 00:01:25,035
speichert MongoDB Daten in Sammlungen in einer Datenbank.

18
00:01:25,035 --> 00:01:28,695
Diese Sammlungen bestehen aus einer Sammlung von Dokumenten.

19
00:01:28,695 --> 00:01:30,750
Die Dokumente selbst, die in

20
00:01:30,750 --> 00:01:35,405
einer MongoDB-Datenbank gespeichert sind, haben keine spezifische Struktur, die dem Dokument auferlegt wird.

21
00:01:35,405 --> 00:01:38,570
Jedes Dokument kann in jeder Sammlung gespeichert werden.

22
00:01:38,570 --> 00:01:46,370
MongoDB verlässt sich auf den Entwickler, um die Struktur der Dokumente durchzusetzen,

23
00:01:46,370 --> 00:01:52,295
und überträgt dem Entwickler die volle Verantwortung, sicherzustellen, dass Dokumente

24
00:01:52,295 --> 00:01:58,670
der richtigen Struktur in den verschiedenen Sammlungen hinzugefügt und gepflegt werden.

25
00:01:58,670 --> 00:02:01,960
Nun, es ist sehr einfach, das zu verletzen.

26
00:02:01,960 --> 00:02:06,260
Zum Beispiel, obwohl Sie mit der Annahme beginnen,

27
00:02:06,260 --> 00:02:11,030
dass eine bestimmte Verbindung Dokumente einer bestimmten Struktur haben wird,

28
00:02:11,030 --> 00:02:17,045
können Sie leicht Dokumente einfügen, die nicht unbedingt mit der Struktur übereinstimmen.

29
00:02:17,045 --> 00:02:21,170
Wenn Sie sehr besonders sind, dass die Struktur der Dokumente in

30
00:02:21,170 --> 00:02:25,550
einer Sammlung immer eine bestimmte Struktur hat

31
00:02:25,550 --> 00:02:28,550
und immer den spezifischen Satz von Feldern hat,

32
00:02:28,550 --> 00:02:32,540
dann wird MongoDB selbst nicht auferlegt, dass auch

33
00:02:32,540 --> 00:02:36,630
der Knoten MongoDB-Treiber, den wir in der vorherigen Lektion gesehen haben, nicht.

34
00:02:36,630 --> 00:02:40,565
Dies ist, wo wir eine formellere Möglichkeit benötigen,

35
00:02:40,565 --> 00:02:46,385
Struktur auf die Dokumente aufzuzwingen, die in einer Sammlung in einer MongoDB-Datenbank gespeichert sind.

36
00:02:46,385 --> 00:02:52,390
Hier kommt das Mongoose-Knotenmodul zu unserer Hilfe.

37
00:02:52,390 --> 00:02:56,405
Das Mongoose-Knotenmodul erlegt

38
00:02:56,405 --> 00:03:01,875
eine standardisierte Struktur für die Dokumente, die in einer bestimmten Sammlung gespeichert sind.

39
00:03:01,875 --> 00:03:07,175
Deshalb hören wir oft Leute, die sich auf das Mungo ODM beziehen.

40
00:03:07,175 --> 00:03:10,950
Das ODM selbst wird von einigen Personen so interpretiert, dass es

41
00:03:10,950 --> 00:03:16,995
Objektdatenmodell oder manchmal als Objektdokumentzuordnung bezeichnet wird,

42
00:03:16,995 --> 00:03:22,125
oder einige Leute bezeichnen es als ORM oder Objekt-Relational-Mapping.

43
00:03:22,125 --> 00:03:27,755
Nun, wenn wir über relationale Datenbanken sprechen, die viel mehr für relationale Datenbanken gilt,

44
00:03:27,755 --> 00:03:33,380
aber dann mit SQL-Datenbanken brauchten wir explizit das Objekt zum

45
00:03:33,380 --> 00:03:41,850
relationalen Mapping, um zwischen der Datenbank und unserer Anwendung selbst platziert zu werden.

46
00:03:41,850 --> 00:03:45,245
Denn innerhalb der Anwendung würden wir uns

47
00:03:45,245 --> 00:03:50,245
Objekte ansehen, aber ihre Speicherung in einer SQL-Datenbank wird in Form von Datensätzen vorliegen,

48
00:03:50,245 --> 00:03:52,585
und daher benötigen Sie eine explizite Zuordnung.

49
00:03:52,585 --> 00:03:54,870
Wie wir mit der NoSQL-Datenbank gesehen haben,

50
00:03:54,870 --> 00:03:56,685
war dies nicht explizit erforderlich.

51
00:03:56,685 --> 00:04:03,710
Aber wenn Sie Ihre Dokumente, die in einer Sammlung gespeichert sind, Struktur auferlegen müssen,

52
00:04:03,710 --> 00:04:10,790
dann ist die Verwendung von Mongoose, um diese Struktur aufzuzwingen, sehr nützlich.

53
00:04:10,790 --> 00:04:13,880
Die Art und Weise, wie Mongoose umgeht, die

54
00:04:13,880 --> 00:04:18,275
Struktur der Dokumente aufzuzwingen, ist durch die Verwendung von Schema.

55
00:04:18,275 --> 00:04:21,995
Schema, definiert die Struktur ihrer Dokumente.

56
00:04:21,995 --> 00:04:24,800
Lassen Sie uns darüber etwas ausführlicher sprechen.

57
00:04:24,800 --> 00:04:27,580
Also, was genau ist Mungo Schema,

58
00:04:27,580 --> 00:04:29,700
und was bringt es auf den Tisch?

59
00:04:29,700 --> 00:04:34,700
Mungo Schema, impliziert eine Struktur auf

60
00:04:34,700 --> 00:04:39,735
den Daten, die in einem Dokument in Ihrer Datenbank gespeichert ist.

61
00:04:39,735 --> 00:04:42,770
Es definiert also alle Felder Ihres Dokuments

62
00:04:42,770 --> 00:04:45,349
und gibt auch die Typen der Felder an

63
00:04:45,349 --> 00:04:47,345
und kann uns auch

64
00:04:47,345 --> 00:04:51,965
zusätzliche Funktionen zur Verfügung stellen, die die Validierung dieser Felder ermöglichen können.

65
00:04:51,965 --> 00:04:59,425
So sind zum Beispiel die verschiedenen Schematypen, die in Mongoose unterstützt werden: String,

66
00:04:59,425 --> 00:05:03,195
Number, Date, Puffer, Boolean,

67
00:05:03,195 --> 00:05:06,295
Mixed, Objekt-ID und Array.

68
00:05:06,295 --> 00:05:09,070
Insbesondere werden wir uns String-Nummer,

69
00:05:09,070 --> 00:05:14,405
und ein Datum, und Boolean in der folgenden Übung zu suchen.

70
00:05:14,405 --> 00:05:18,075
Wir werden einige der anderen in späteren Übungen betrachten.

71
00:05:18,075 --> 00:05:22,125
Beachten Sie insbesondere die Verwendung des Array-Schematyps.

72
00:05:22,125 --> 00:05:25,570
Ein Array-Schema-Typ ermöglicht es Ihnen,

73
00:05:25,570 --> 00:05:31,640
ein Array von Unterdokumenten innerhalb des Dokuments zu erstellen.

74
00:05:31,640 --> 00:05:33,740
Ich werde in kurzer Zeit darüber reden.

75
00:05:33,740 --> 00:05:36,940
Nachdem Sie ein Schema definiert haben,

76
00:05:36,960 --> 00:05:42,160
wird das Schema dann in Mongoose verwendet, um eine Modellfunktion

77
00:05:42,160 --> 00:05:49,830
zu erstellen. Dadurch können Sie die Struktur für Ihre Dokumente in der Datenbank definieren.

78
00:05:49,830 --> 00:05:53,225
Schemas selbst können Verschachtelung haben.

79
00:05:53,225 --> 00:05:58,490
Das bedeutet, dass Sie Unterdokument haben können, die in einem Dokument eingeschlossen sind.

80
00:05:58,490 --> 00:06:01,519
Die Unterdokumente werden in der Regel

81
00:06:01,519 --> 00:06:04,890
entweder durch die Angabe eines zusätzlichen Schemas aufgenommen

82
00:06:04,890 --> 00:06:11,870
und dann eines der Felder des Schemas so definiert, dass es sich nicht um den Typ des anderen Schemas handelt.

83
00:06:11,870 --> 00:06:15,215
Oder Sie können sogar ein Array eines

84
00:06:15,215 --> 00:06:20,000
anderen Schematyps innerhalb eines zweiten Schemas verwenden, das Sie definieren.

85
00:06:20,000 --> 00:06:24,930
Schauen wir uns ein Beispiel an, um einige davon genauer zu klären.

86
00:06:24,930 --> 00:06:32,010
Dieses Beispiel stammt aus der Übung, die Sie direkt nach dieser Vorlesung durchführen werden.

87
00:06:32,010 --> 00:06:37,705
Bevor ich über Schemas und Modelle in Mongoose sprechen kann,

88
00:06:37,705 --> 00:06:41,310
lasst uns verstehen, warum wir das brauchen.

89
00:06:41,310 --> 00:06:43,975
Wenn Sie den vorherigen eckigen oder

90
00:06:43,975 --> 00:06:46,760
ionischen oder den nativen Skript-Kurs genommen haben,

91
00:06:46,760 --> 00:06:49,445
haben Sie gesehen, dass wir

92
00:06:49,445 --> 00:06:55,565
verschiedene Daten darstellen, die wir in unseren Anwendungen in Form von JSON-Strings verwenden.

93
00:06:55,565 --> 00:07:02,050
In unserer Anwendung definieren wir also eine Sammlung, die als Gerichte bezeichnet wird.

94
00:07:02,050 --> 00:07:03,770
In einer Geschirrsammlung

95
00:07:03,770 --> 00:07:09,700
enthält jedes Gericht einen bestimmten Satz von Eigenschaften, die in Form einer JSON-Zeichenfolge definiert sind,

96
00:07:09,700 --> 00:07:11,665
wie Sie in diesem Beispiel sehen.

97
00:07:11,665 --> 00:07:15,830
Also, das Geschirr ist eine Reihe von Gerichttyp,

98
00:07:15,830 --> 00:07:18,605
und jedes Gericht selbst wird einen Namen,

99
00:07:18,605 --> 00:07:20,290
ein Bild, eine Kategorie,

100
00:07:20,290 --> 00:07:22,015
ein Etikett und so weiter enthalten.

101
00:07:22,015 --> 00:07:26,360
Außerdem

102
00:07:26,360 --> 00:07:32,830
würden Sie innerhalb des Dish-Dokuments selbst Kommentare haben, die als ein Array von wieder gespeichert werden, -

103
00:07:32,830 --> 00:07:38,240
JSON-Dokumenten, die bestimmte Felder Schritt enthalten.

104
00:07:38,240 --> 00:07:39,750
So

105
00:07:39,750 --> 00:07:45,685
enthält jeder Kommentar zum Beispiel einen Bewertungskommentar und ein Datumsfeld, wie Sie in diesem Beispiel sehen.

106
00:07:45,685 --> 00:07:49,215
So sehen Sie, dass es eine klare Struktur zu

107
00:07:49,215 --> 00:07:55,230
jedem Dokument gibt, die ein Gericht definiert, das in unserer Datenbank gespeichert ist.

108
00:07:55,230 --> 00:08:02,545
Mehrere Gerichte werden offensichtlich in Form einer Sammlung in unserer Datenbank gespeichert,

109
00:08:02,545 --> 00:08:06,655
und könnten zusammen gruppiert und als eine Reihe von

110
00:08:06,655 --> 00:08:11,165
Gerichten an unsere Client-Anwendung gesendet werden verwendet werden.

111
00:08:11,165 --> 00:08:14,890
Nun, da wir verstanden haben, wie das definiert ist,

112
00:08:14,890 --> 00:08:22,000
wie bezieht sich das jetzt auf das Mungo Schema und das Modell, das wir in Mongoose definieren?

113
00:08:22,000 --> 00:08:27,460
Notieren Sie sich nun die Struktur eines typischen Gerichtes hier.

114
00:08:27,460 --> 00:08:34,095
Dies könnte also leicht in ein MongoDB-Dokument in einer Sammlung abgebildet werden,

115
00:08:34,095 --> 00:08:37,375
vielleicht die Geschirrsammlung genannt.

116
00:08:37,375 --> 00:08:42,605
Wir sehen also, dass das Dokument selbst eine klare Struktur hat.

117
00:08:42,605 --> 00:08:50,320
Nun, wie spiegeln wir dies in einem Schema in unserer Mongoose-Anwendung?

118
00:08:50,320 --> 00:08:54,095
Wie Sie in der Übung erfahren werden,

119
00:08:54,095 --> 00:08:57,900
werden wir sehen, dass wir Schemas in Mungo definieren würden.

120
00:08:57,900 --> 00:09:03,085
So ist das Schema hier als Mongoose-Schema definiert.

121
00:09:03,085 --> 00:09:08,055
Als Beispiel wird hier ein CommentSchema dargestellt.

122
00:09:08,055 --> 00:09:09,925
Das CommentSchema

123
00:09:09,925 --> 00:09:13,885
enthält, wie Sie sehen können, drei verschiedene Felder: die Bewertung, den Kommentar

124
00:09:13,885 --> 00:09:15,445
und das Autorenfeld

125
00:09:15,445 --> 00:09:18,745
sowie hier Zeitstempel. Mit

126
00:09:18,745 --> 00:09:23,560
den Zeitstempeln können Sie zwei verschiedene Felder im

127
00:09:23,560 --> 00:09:28,850
Dokument haben: das erstellte Feld und das aktualisierte Feld bei.

128
00:09:28,850 --> 00:09:38,200
Beide Zeitstempel sind Zeitstempel, die in Form einer ISO-Datumszeichenfolge im Dokument gespeichert werden.

129
00:09:38,200 --> 00:09:43,615
Nun wäre die Bewertung selbst ein ganzzahliger Wert.

130
00:09:43,615 --> 00:09:46,400
Also, in Mongoose Terminologie,

131
00:09:46,400 --> 00:09:48,755
wird es als eine Zahl gespeichert werden,

132
00:09:48,755 --> 00:09:50,680
der Typ wäre eine Zahl.

133
00:09:50,680 --> 00:09:53,660
Sie können sogar den Minimal- und den Maximalwert angeben.

134
00:09:53,660 --> 00:09:57,190
Sie können auch angeben, dass dieses Feld erforderlich ist.

135
00:09:57,190 --> 00:10:04,460
Das bedeutet, dass jedes Dokument des Kommentartyps ein Bewertungsfeld enthalten sollte.

136
00:10:04,460 --> 00:10:07,370
In ähnlicher Weise können Sie auch ein Kommentarfeld definieren,

137
00:10:07,370 --> 00:10:08,710
das vom Typ String ist.

138
00:10:08,710 --> 00:10:13,635
Also, offensichtlich ist ein Kommentar nichts anderes als eine Zeichenfolge, die einige Informationen enthält,

139
00:10:13,635 --> 00:10:16,340
und dies kann auch als ein erforderliches Feld definiert werden,

140
00:10:16,340 --> 00:10:18,805
was bedeutet, dass jedes Dokument einen Kommentar enthalten sollte,

141
00:10:18,805 --> 00:10:21,060
und auch ein Autorenfeld,

142
00:10:21,060 --> 00:10:22,800
das auch vom Typ String ist.

143
00:10:22,800 --> 00:10:28,030
Sie sehen das also, indem Sie dieses Schema in diesem Format definieren.

144
00:10:28,030 --> 00:10:32,600
Wie wir in der Diskussion ein wenig früher gelernt,

145
00:10:32,600 --> 00:10:41,890
Schema wird durch die Verwendung der verschiedenen Typen definiert, die wir in unserer Mongoose-Anwendung haben.

146
00:10:41,890 --> 00:10:43,030
Also, im Schema, wieder,

147
00:10:43,030 --> 00:10:44,900
sehen Sie hier drei verschiedene Felder,

148
00:10:44,900 --> 00:10:47,135
Bewertung, Kommentar und Autor,

149
00:10:47,135 --> 00:10:50,665
und jedes von denen hat einen bestimmten Typ gegeben,

150
00:10:50,665 --> 00:10:53,060
und dann, ob dies erforderlich ist oder nicht.

151
00:10:53,060 --> 00:10:56,505
So erzwingen Sie eine strenge Struktur

152
00:10:56,505 --> 00:11:01,320
auf die Kommentardokumente, die in Ihrer Anwendung gespeichert werden.

153
00:11:01,320 --> 00:11:05,255
Nun, da wir ein Kommentarschema definiert haben, können wir dann,

154
00:11:05,255 --> 00:11:12,254
wie Sie am Beispiel der Art von Daten bemerkt haben, die wir in unserer Anwendung benötigen,

155
00:11:12,254 --> 00:11:15,000
ein Gericht Dokument selbst haben.

156
00:11:15,000 --> 00:11:17,620
Das Gericht Dokument enthält verschiedene Felder.

157
00:11:17,620 --> 00:11:19,050
Hier, in der Übung,

158
00:11:19,050 --> 00:11:23,355
werden wir zuerst nur zwei Felder in das Gericht Dokument einführen,

159
00:11:23,355 --> 00:11:25,370
den Namen und die Beschreibung.

160
00:11:25,370 --> 00:11:27,010
In der nächsten Lektion

161
00:11:27,010 --> 00:11:32,330
werden wir die verbleibenden Felder für das DishSchema vorstellen.

162
00:11:32,330 --> 00:11:35,440
Nun, also

163
00:11:35,440 --> 00:11:36,765
ist der Name, wie in diesem Fall, vom Typ string.

164
00:11:36,765 --> 00:11:39,450
Wir können auch angeben, dass dies ein Pflichtfeld ist,

165
00:11:39,450 --> 00:11:43,360
was bedeutet, dass jedes Dokument das Namensfeld enthalten sollte.

166
00:11:43,360 --> 00:11:46,385
Wir können auch angeben, dass das Namensfeld eindeutig ist,

167
00:11:46,385 --> 00:11:53,215
was bedeutet, dass keine zwei Dokumente genau den gleichen Namenswert im Dokument haben können.

168
00:11:53,215 --> 00:11:55,980
Dadurch wird sichergestellt, dass jedes Dokument

169
00:11:55,980 --> 00:12:01,300
ein eindeutiges Namensfeld enthält und ein Beschreibungsfeld,

170
00:12:01,300 --> 00:12:03,115
das wiederum vom Typ String ist,

171
00:12:03,115 --> 00:12:06,460
aber auch bei Bedarf angegeben wird.

172
00:12:06,460 --> 00:12:10,010
Nun, wie wir in dem Beispiel gesehen haben,

173
00:12:10,010 --> 00:12:15,750
enthält ein Dish-Dokument mehrere Kommentare, die innerhalb des Dokuments eingeschlossen sind.

174
00:12:15,750 --> 00:12:20,920
Nun, in Mongoose, wird dies durch die Verwendung von Unterdokumenten unterstützt.

175
00:12:20,920 --> 00:12:24,230
Wenn Sie also ein Schema früher definieren,

176
00:12:24,230 --> 00:12:27,345
also haben wir hier bereits ein CommentSchema definiert,

177
00:12:27,345 --> 00:12:33,370
können Sie auch ein Feld in ein anderes Schema definieren, das Sie definieren und

178
00:12:33,370 --> 00:12:36,240
dann angeben, dass dieses Feld

179
00:12:36,240 --> 00:12:39,520
vom Typ des vorherigen Schemas sein wird, das Sie definiert haben.

180
00:12:39,520 --> 00:12:40,960
Also, in diesem Fall,

181
00:12:40,960 --> 00:12:44,360
das Kommentarfeld, definiere ich es als ein Array,

182
00:12:44,360 --> 00:12:51,545
so dass Sie die Verwendung eines Array-Typs in Ihrem Schema sehen, den Sie hier definieren,

183
00:12:51,545 --> 00:12:55,110
und dann Array des CommentSchema-Typs.

184
00:12:55,110 --> 00:13:00,725
Also, dies ist ein Array von Kommentaren, die in jedem Gericht Dokument enthalten werden.

185
00:13:00,725 --> 00:13:02,590
So können Sie

186
00:13:02,590 --> 00:13:11,640
mehr als ein Kommentar-Unterdokument in einem Gericht Dokument eingeschlossen haben. Wenn wir

187
00:13:11,640 --> 00:13:16,080
also die Struktur so definieren, können wir

188
00:13:16,080 --> 00:13:20,950
die entsprechende JSON-String-Struktur unterstützen, die wir

189
00:13:20,950 --> 00:13:26,470
für ein Dish-Dokument definiert haben oder die wir im Beispiel zuvor gesehen haben.

190
00:13:26,470 --> 00:13:30,145
Nun, sobald wir das Schema definieren,

191
00:13:30,145 --> 00:13:33,695
um dies in unserer Anwendung

192
00:13:33,695 --> 00:13:38,600
zu nutzen, müssen wir ein Modell aus diesem Schema erstellen, das wir gerade definiert haben.

193
00:13:38,600 --> 00:13:40,640
In unserer Anwendung

194
00:13:40,640 --> 00:13:45,320
definieren wir also ein Mongoose-Modell und geben an, dass das Modell

195
00:13:45,320 --> 00:13:51,085
vom Typ DishSchema in diesem Beispiel entfernt ist.

196
00:13:51,085 --> 00:13:54,830
Nicht nur das, Sie geben dem Modell hier auch einen Namen.

197
00:13:54,830 --> 00:13:57,100
Also, wenn Sie dem Modell hier einen Namen geben,

198
00:13:57,100 --> 00:14:00,000
geben wir den Namen als Gericht an.

199
00:14:00,000 --> 00:14:03,860
Nun, wenn Sie dieses Gericht Modell in

200
00:14:03,860 --> 00:14:07,870
unserer Knotenanwendung verwenden, in der wir Mongoose verwenden,

201
00:14:07,870 --> 00:14:15,280
dann wird dies umgewandelt und in eine Sammlung in meiner MongoDB-Datenbank abgebildet.

202
00:14:15,280 --> 00:14:18,885
Die Kollektion selbst wird als Gerichte bezeichnet.

203
00:14:18,885 --> 00:14:23,355
Also, Mongoose weiß automatisch, dass, wenn Sie hier einen Namen angeben,

204
00:14:23,355 --> 00:14:27,990
es automatisch den Plural dieses

205
00:14:27,990 --> 00:14:31,635
Namens konstruiert und dann der Sammlung den Namen gibt. Dies

206
00:14:31,635 --> 00:14:37,160
ist der Plural des Modellnamens, den Sie in diesem Beispiel angeben.

207
00:14:37,160 --> 00:14:39,400
Also, wenn ich hier Gericht sage,

208
00:14:39,400 --> 00:14:42,620
dann wird Mongoose dies automatisch in

209
00:14:42,620 --> 00:14:46,365
die Geschirr-Sammlung in der MongoDB-Datenbank abbilden.

210
00:14:46,365 --> 00:14:53,385
Woher weiß es, wie man diesen singulären Namen in einen Plural umwandelt?

211
00:14:53,385 --> 00:14:56,750
Mungo verfügt automatisch über einen eingebauten Mechanismus, der

212
00:14:56,750 --> 00:15:01,795
es ermöglicht, die Plurale von englischen Standardwörtern zu konstruieren.

213
00:15:01,795 --> 00:15:02,965
Also, wenn Sie Gericht sagen,

214
00:15:02,965 --> 00:15:04,170
wird es Geschirr konstruieren.

215
00:15:04,170 --> 00:15:08,880
Wenn Sie Führer sagen, wird es den Plural von ihm als Führer konstruieren, und so weiter.

216
00:15:08,880 --> 00:15:13,250
Dies ist also bereits in das Mongoose-Knotenmodul integriert.

217
00:15:13,250 --> 00:15:17,585
Deshalb wird

218
00:15:17,585 --> 00:15:24,050
Mongoose, wenn ich dies als Gerichtenmodelltyp spezifiziere, die Geschirrsammlung in meiner MongoDB-Datenbank konstruieren,

219
00:15:24,050 --> 00:15:27,155
und dann wird diese

220
00:15:27,155 --> 00:15:33,050
Geschirrsammlung die verschiedenen Dokumente des Gerichttyps dort speichern.

221
00:15:33,050 --> 00:15:35,780
Sobald wir das erstellt haben, in der Regel,

222
00:15:35,780 --> 00:15:38,150
wenn wir Modelle in unserer Anwendung deklarieren,

223
00:15:38,150 --> 00:15:43,780
würden wir sie in einem Unterordner namens models speichern, nur der Einfachheit halber.

224
00:15:43,780 --> 00:15:44,900
Sie müssen das nicht tun,

225
00:15:44,900 --> 00:15:47,320
aber nur um Ihre Anwendung zu organisieren,

226
00:15:47,320 --> 00:15:50,635
würden wir diese normalerweise in einem Ordner namens models speichern.

227
00:15:50,635 --> 00:15:55,010
Dann würden das Schema und das Modell

228
00:15:55,010 --> 00:15:59,470
in einer Datei wie dieser definiert werden, wie Sie im Beispiel hier sehen, das

229
00:15:59,470 --> 00:16:05,230
heißt dishes.js, und dann würde dies exportiert werden, weil es sich um ein Knotenmodul handelt.

230
00:16:05,230 --> 00:16:10,970
Dies wird aus dieser Datei exportiert, so dass es in die Knotenanwendung aufgenommen

231
00:16:10,970 --> 00:16:13,100
werden kann, wo wir

232
00:16:13,100 --> 00:16:16,620
dieses Schema und das Modell verwenden, das wir gerade hier definiert haben.

233
00:16:16,620 --> 00:16:20,540
Mit diesem schnellen Verständnis von Schema und Modell und

234
00:16:20,540 --> 00:16:26,370
seiner Verwendung bei der Definition der Struktur für ein Dokument, das wir in einer MongoDB speichern,

235
00:16:26,370 --> 00:16:33,510
gehen wir zurück und verstehen ein wenig mehr darüber, was Mongoose für uns bietet.

236
00:16:33,510 --> 00:16:39,965
Darüber hinaus ermöglicht uns Mongoose, die Verbindung mit dem MongoDB-Server herzustellen.

237
00:16:39,965 --> 00:16:43,070
Mongoose nutzen intern

238
00:16:43,070 --> 00:16:49,745
den MongoDB-Treiber, den wir in der vorherigen Übung verwendet hatten.

239
00:16:49,745 --> 00:16:53,824
Also, Mongoose hängt vom MongoDB-Treiber ab,

240
00:16:53,824 --> 00:16:56,960
was bedeutet, dass

241
00:16:56,960 --> 00:17:01,040
Sie von Ihrer Mongoose-basierten Knotenanwendung alle Methoden verwenden können, die bereits

242
00:17:01,040 --> 00:17:05,390
vom MongoDB-Treiber verfügbar sind, auch wenn Sie dies wünschen,

243
00:17:05,390 --> 00:17:09,940
aber Mongoose selbst hat eine eigene Sammlung von Methoden, die wir Verwendung von, um mit der MongoDB-Datenbank zu interagieren,

244
00:17:09,940 --> 00:17:13,645
wie wir in der folgenden Übung sehen werden.

245
00:17:13,645 --> 00:17:19,040
Lassen Sie mich Ihnen kurz zeigen, wie wir eine Verbindung zur Datenbank herstellen würden,

246
00:17:19,040 --> 00:17:21,590
und Sie werden dies in der folgenden Übung tun.

247
00:17:21,590 --> 00:17:25,280
So, wie wir die URL im Falle

248
00:17:25,280 --> 00:17:29,160
der MongoDB-Knotenanwendung in der früheren Lektion deklariert

249
00:17:29,160 --> 00:17:32,630
haben, werden wir immer noch die URL für unsere Anwendung deklarieren.

250
00:17:32,630 --> 00:17:36,965
Dann werden wir die Mongoose Connect-Methode verwenden

251
00:17:36,965 --> 00:17:40,180
und die URL für die Mongoose Connect-Methode liefern,

252
00:17:40,180 --> 00:17:44,000
und dies wird die Verbindung mit der Datenbank herstellen.

253
00:17:44,000 --> 00:17:48,590
Mit diesem schnellen Verständnis von Mongoose und welche Rolle Mongoose

254
00:17:48,590 --> 00:17:53,485
bei der Unterstützung von strukturiertem Einfügen

255
00:17:53,485 --> 00:17:58,985
, Speichern und Abrufen von Dokumenten aus unserer MongoDB spielt,

256
00:17:58,985 --> 00:18:02,180
lassen Sie uns zu der Übung übergehen, wo wir

257
00:18:02,180 --> 00:18:07,920
einige praktische Erfahrungen mit dem Mongoose-Modul bekommen.