1
00:00:00,190 --> 00:00:06,510
&nbsp;

2
00:00:06,540 --> 00:00:13,710
さて、このビデオでは、データを埋め込むことで2つのマングースモデル間の関連付けを1対多に設定する方法を紹介し、ユーザーと投稿を処理する予定です。

3
00:00:13,710 --> 00:00:19,980
&nbsp;

4
00:00:19,980 --> 00:00:26,520
これはFacebookやブログアプリのようなもので、ユーザーは1人のユーザーしかいないが、ポストは1人のユーザーに属しており、実際のアプリケーションはルートやテンプレートで作成されません。

5
00:00:26,790 --> 00:00:30,090
データとデータモデリングだけに焦点を当てます。

6
00:00:30,120 --> 00:00:36,110
ですから、私が作ったこの関連ディレクトリの中に新しいファイルを作ることから始めるつもりです。

7
00:00:36,300 --> 00:00:37,520
あなたはどこにいてもこれを行うことができます。

8
00:00:37,530 --> 00:00:48,600
それは単一のファイルになるだろう。私はそれを埋め込み点Jと呼ぶだろう。 S.

9
00:00:48,960 --> 00:01:00,750
私はそれを開き、ここでは私がまだインストールしていないmongooseが必要になりますので、私は次にそれを行い、PMはmongooseをインストールします。

10
00:01:00,810 --> 00:01:02,150
&nbsp;

11
00:01:02,160 --> 00:01:03,020
そこに行く。

12
00:01:03,360 --> 00:01:04,790
スペースを作ってみましょう。

13
00:01:05,010 --> 00:01:11,250
そして、それを必要とすると、次のことはmongooseが接続するようにデータベースに接続することです。これはデータベースの名前にまったく変わりませんが、Mangu

14
00:01:12,750 --> 00:01:18,870
DBコロンスラッシュスラッシュローカルホストスラッシュとロールコールでなければなりません。

15
00:01:19,380 --> 00:01:22,350
&nbsp;

16
00:01:22,350 --> 00:01:26,890
このブログのデモはちょうどそのように保存してください。

17
00:01:27,500 --> 00:01:33,100
これで、ユーザーがいるモデルを2つ定義する必要があり、投稿があります。

18
00:01:33,330 --> 00:01:38,610
ユーザーは電子メールと名前とポストだけを持っています。

19
00:01:38,640 --> 00:01:42,170
それはタイトルとその後の内容を持つつもりです。

20
00:01:42,540 --> 00:01:44,310
実際の投稿そのもの。

21
00:01:44,310 --> 00:01:47,330
そこで、ユーザーがスキーマを定義する必要から始めます。

22
00:01:47,520 --> 00:01:58,670
今のところユーザースキーマは新しいmongooseスキーマと等しくなり、次に文字列と同じ名前の文字列である電子メールを作成します。

23
00:01:58,860 --> 00:02:01,790
&nbsp;

24
00:02:02,100 --> 00:02:04,850
これまでモデルを作成しています。

25
00:02:05,010 --> 00:02:11,760
ユーザーはmongooseモデルユーザーに等しい。

26
00:02:11,760 --> 00:02:16,340
Cingularのバージョンとユーザースキーマは、私たちが構築しているものです。

27
00:02:16,530 --> 00:02:17,700
そして私たちはそれを保存します。

28
00:02:17,980 --> 00:02:18,640
OK。

29
00:02:18,930 --> 00:02:20,580
今度は投稿に移りましょう。

30
00:02:20,640 --> 00:02:31,380
今度は、別のスキーマを作成するつもりです。これは、var

31
00:02:31,410 --> 00:02:37,710
postスキーマが新しいmongooseスキーマと等しくなり、各投稿には文字列とタイトルだけで文字列が作成されます。

32
00:02:38,340 --> 00:02:48,030
そして、それをモデルvar postモデルに変換する必要があります。これは、マングース・ストップ・モデル・ポスト・ポスト・ポスト・スキーマと同じです。

33
00:02:48,450 --> 00:02:51,500
&nbsp;

34
00:02:51,790 --> 00:02:52,590
右。

35
00:02:52,650 --> 00:02:56,010
そこで、2つのスキーマを設定して2つのモデルを作成しました。

36
00:02:56,010 --> 00:02:57,670
ここで少し部屋を作ってみましょう。

37
00:02:57,810 --> 00:03:00,830
だから我々は私たちの投稿を持っており、我々はユーザーを持っています。

38
00:03:00,990 --> 00:03:02,610
これを実行してみましょう。

39
00:03:02,610 --> 00:03:09,100
ノード埋め込みDutcherはいを開始する構文エラーがないことを確認してください。

40
00:03:09,600 --> 00:03:11,090
いいね。

41
00:03:11,100 --> 00:03:15,470
さあ、私たちのモデルが機能することを確認するために、一人のユーザーを作ってみましょう。

42
00:03:15,470 --> 00:03:21,630
&nbsp;

43
00:03:22,170 --> 00:03:35,220
だから、私は新しいユーザーを作るつもりですので、私たちは新しいユーザーが新しいユーザーに等しいと呼ぶでしょうし、私たちは電子メールと電子メールを渡します。チャーリーはエドゥの周りで、名前はチャーリーになりますブラウンちゃん。

44
00:03:35,220 --> 00:03:37,240
&nbsp;

45
00:03:37,380 --> 00:03:40,600
新しいユーザーを保存するために必要なもの。

46
00:03:40,740 --> 00:03:46,230
そして、私たちのコールバックにエラーを追加し、データが返ってきます。これはうまくいけば私たちのユーザーであり、あなただけではありません。

47
00:03:46,230 --> 00:03:49,540
&nbsp;

48
00:03:49,560 --> 00:03:55,370
エラーがログエラーをキャンセルした場合。

49
00:03:56,670 --> 00:04:01,010
それ以外の場合は、そのログユーザーをキャンセルします。

50
00:04:01,110 --> 00:04:03,340
だから、これまでの団体はありません。

51
00:04:03,390 --> 00:04:06,350
私はちょうど我々のユーザーモデルが動作するかどうかを確認するためにテストしています

52
00:04:06,360 --> 00:04:15,120
だから、Dutchesseを埋め込んだノードを実行して、名前と電子メールが自動的に生成されたIDでユーザを戻しましょう。

53
00:04:15,210 --> 00:04:17,190
&nbsp;

54
00:04:17,190 --> 00:04:22,110
&nbsp;

55
00:04:22,110 --> 00:04:31,980
グレートしてみましょう投稿と同じことを試してみましょう私たちは別のユーザーを取得しないように私たちは新しい投稿と同じようにしようとしている投稿とタイトルがあり、ポストのタイトルはリンゴその投稿またはコンテンツのテキスト。

56
00:04:32,370 --> 00:04:37,060
&nbsp;

57
00:04:37,050 --> 00:04:40,940
私はそれがはいコンテンツと呼ばれると思います。

58
00:04:41,280 --> 00:04:43,620
おいしいよ。

59
00:04:44,250 --> 00:04:44,640
大丈夫。

60
00:04:44,640 --> 00:04:46,110
素晴らしいブログ投稿があります。

61
00:04:46,320 --> 00:04:53,520
私たちはすべてがうまくいっていることを確認してから、私たちは実際に私たちとコールバックをもう一度保存する新しい投稿を行うつもりです。

62
00:04:53,520 --> 00:04:55,940
&nbsp;

63
00:04:56,100 --> 00:05:01,520
あなたがこのコールバックをmongooseに渡している直感的なことを見ているので、このパターンに慣れていることを望みます。

64
00:05:01,530 --> 00:05:03,240
&nbsp;

65
00:05:03,360 --> 00:05:09,300
Mongaを使って何かをするたびに、節約更新を作成して最終的に削除して、最初のパラメータとしてエラーを、次に2番目のパラメータとしてデータをコールバックする必要があります。

66
00:05:09,600 --> 00:05:14,670
&nbsp;

67
00:05:14,670 --> 00:05:15,360
&nbsp;

68
00:05:15,360 --> 00:05:15,590
大丈夫。

69
00:05:15,600 --> 00:05:28,610
だからエラーがログアウトした場合は、それ以外の場合は、そのブログ投稿に来るこれらの両方が動作することを確認します。

70
00:05:28,670 --> 00:05:32,260
それを試してみましょう。小さな問題に遭遇します。

71
00:05:32,390 --> 00:05:36,920
新しい投稿を作成しようとしているときに投稿が定義されていないことがわかります

72
00:05:37,040 --> 00:05:41,990
そしてそれが起こる最も論理的な理由は、私たちがモデル以外の名前を投稿以外の名前にした場合です。

73
00:05:42,350 --> 00:05:43,480
そしてあなたは何を知っていますか？

74
00:05:43,520 --> 00:05:48,100
私たちはそれをポストモデルと命名しました。私はそれを間違って指定しました。

75
00:05:48,410 --> 00:05:50,160
だから、ポストと一緒に行こう。

76
00:05:50,270 --> 00:05:53,800
私たちはそれをポストモデルとして保存し、ここでそれを変更することができました。

77
00:05:54,440 --> 00:05:58,760
&nbsp;

78
00:05:58,760 --> 00:06:03,920
&nbsp;

79
00:06:03,920 --> 00:06:06,900
しかし、モデルを持つ必要がないようにしているのは、モデル自体の名前だけでなく、大文字のエンティティポストP。 今すぐ一致するように。

80
00:06:06,920 --> 00:06:08,400
右はここに投稿して投稿しています。

81
00:06:08,460 --> 00:06:11,500
これをもう一度試してみましょう。今回は新しい投稿コンテンツを追加します。

82
00:06:11,750 --> 00:06:17,740
彼らはリンゴのおいしいタイトルの反映です。

83
00:06:17,750 --> 00:06:20,700
&nbsp;

84
00:06:21,050 --> 00:06:25,340
これで2つのモデルが正しく機能していることを確認したので、投稿をしてユーザーを作ることができます。

85
00:06:25,340 --> 00:06:26,150
&nbsp;

86
00:06:26,330 --> 00:06:31,550
しかし、現在のところ、彼らはお互いに関係がありません。私たちは、ユーザーが多くの投稿を所有したり所有したりすることを覚えておきたいと思います。

87
00:06:31,550 --> 00:06:37,440
だからそれは1対多の関係です。

88
00:06:37,670 --> 00:06:39,830
それを達成するための方法は、ユーザースキーマの代わりにデータを埋め込むことです。

89
00:06:40,020 --> 00:06:45,770
だから、このように見えるだろう。

90
00:06:46,250 --> 00:06:47,520
それから、ちょっとだけ説明します。

91
00:06:47,550 --> 00:06:49,940
ユーザーの内部と投稿の属性の内側に投稿の属性を設定します。

92
00:06:50,090 --> 00:06:55,520
&nbsp;

93
00:06:55,520 --> 00:07:01,640
私たちはたくさんの投稿を持ち、その作業のために配列内に投稿スキーマを追加する必要があります。

94
00:07:01,640 --> 00:07:02,570
&nbsp;

95
00:07:02,570 --> 00:07:08,210
だから、ポストを文字列、数字、またはブール値にするのではなく、私たちはそれをポストの配列のリストにしたいと思っています。ポストスキーマを書く必要があります。これは正直なところ少し混乱します。

96
00:07:08,210 --> 00:07:14,640
私はそれがモデルの名前を投稿するだけだったと思うが、それはちょうど方法です。

97
00:07:14,780 --> 00:07:19,510
&nbsp;

98
00:07:19,520 --> 00:07:24,860
それはスキーマの名前でなければなりません。私たちはこれを今実行すると、ポストケモが何であるかを知ることができず、それは第2の定義であるからです。

99
00:07:24,860 --> 00:07:29,890
したがって、データを埋め込む場合は、最初に定義する必要があります。

100
00:07:29,990 --> 00:07:33,500
&nbsp;

101
00:07:33,590 --> 00:07:39,770
そこで、ポスト・スキーマとポスト・モデルを定義し、ユーザー・スキーマを定義し、ユーザー・スキーマ内に、postsという属性を追加します。これはポストの配列です。

102
00:07:39,770 --> 00:07:45,560
&nbsp;

103
00:07:45,560 --> 00:07:53,840
だから私たちのデータがこのようなものになるか、またはユーザーの名前が電子メールに送られ、ちょうどちょっとした名前をつけた後、投稿と投稿が配列されます。

104
00:07:54,200 --> 00:08:00,960
&nbsp;

105
00:08:01,220 --> 00:08:10,430
その配列の中には複数の投稿があるので、それぞれの投稿にはタイトルとコンテンツがあり、ユーザーはそのような投稿を多く持つことができます。

106
00:08:10,490 --> 00:08:13,380
&nbsp;

107
00:08:13,730 --> 00:08:19,520
したがって、取得するすべての投稿について、特定のユーザーの投稿属性ではなく新しい投稿になります。

108
00:08:19,520 --> 00:08:20,870
それでは、それを手に入れましょう。

109
00:08:20,870 --> 00:08:22,030
ユーザーを作成してから、そのユーザーに投稿を追加する方法を示して、私たちがそのユーザーを使うことができるようにしましょう。

110
00:08:22,160 --> 00:08:28,130
ここのチャーリーブラウン

111
00:08:28,370 --> 00:08:29,990
新しいユーザーはCharlie Brownと同等です。

112
00:08:30,020 --> 00:08:31,960
私は既にチャーリー・ブラウンをデータベースに入れているので、電子メールと名前の一部を変更します。

113
00:08:31,970 --> 00:08:36,920
一緒に行こう、ホグワーツエドで私のものです。

114
00:08:37,490 --> 00:08:42,590
そして、私たちはこれを私の叔母のグレンジャーに変えます。

115
00:08:43,100 --> 00:08:46,490
大丈夫。

116
00:08:46,640 --> 00:08:47,190
そのため、新しいユーザーがいて、そのユーザーに投稿を追加します。

117
00:08:47,330 --> 00:08:51,400
彼らがしなければならないのは、それが配列なので、プッシュする新しいユーザー投稿を書くことだけです。

118
00:08:51,650 --> 00:08:58,990
&nbsp;

119
00:08:59,090 --> 00:09:08,980
そして、私は新しい投稿を押して、ポストはタイトルを持っています。私の次のポストのタイトルは、ポリジュースの飲み物の作り方です。内容はちょうど冗談でしょう。

120
00:09:08,970 --> 00:09:19,330
それを大丈夫に学ぶポーションクラス。

121
00:09:19,490 --> 00:09:23,540
それは本当に問題ではありません。

122
00:09:23,540 --> 00:09:24,640
&nbsp;

123
00:09:24,650 --> 00:09:31,810
だから私たちはタイトルといくつかのコンテンツを持っています、そして、私たちはここで定義した新しいユーザーにこの投稿をプッシュします。

124
00:09:31,820 --> 00:09:32,450
最後に、新しいユーザーを救うだけです。

125
00:09:32,810 --> 00:09:35,790
そのように保存する新しいユーザー。

126
00:09:35,840 --> 00:09:39,070
&nbsp;

127
00:09:39,070 --> 00:09:46,280
そして、私たちは実際にこれを書いているので、私はそれを再利用してコメントを外し、これを試して保存します。

128
00:09:46,280 --> 00:09:47,030
もしエラーがあれば、私たちに知らせます。

129
00:09:47,150 --> 00:09:48,920
&nbsp;

130
00:09:48,980 --> 00:09:54,440
さもなければ、それは私達にユーザーを示して、そしてこの記事のすべてのコメントを投稿についてここにコメントし、ちょうどそれを保存し、何が起こるか見てみましょう。

131
00:09:54,440 --> 00:09:56,880
&nbsp;

132
00:09:57,110 --> 00:10:02,720
そこで私たちはあなたが定義した投稿スキーマを持っています。ユーザースキーマがあり、ここには新しい部分があります。

133
00:10:02,720 --> 00:10:06,340
それから、新しいユーザーを作って、そのポストに押し込んでいます。

134
00:10:06,740 --> 00:10:10,080
それを試してみましょう。

135
00:10:10,550 --> 00:10:12,610
OK。

136
00:10:14,230 --> 00:10:14,690
&nbsp;

137
00:10:14,780 --> 00:10:20,850
このユーザーには、Hogwarts氏にHermione Granger氏の名前を思い出させる電子メールが印刷されています。投稿の代わりに新しい投稿があります。

138
00:10:21,020 --> 00:10:23,700
だからうまくいっている。

139
00:10:23,820 --> 00:10:25,600
&nbsp;

140
00:10:25,610 --> 00:10:30,650
ここで私がこれをコメントアウトし、新しいユーザーを作成するのではなく、既存のユーザーを取得してみましょう。

141
00:10:30,650 --> 00:10:33,450
だから私は彼女の採掘を取り出すつもりです。

142
00:10:33,530 --> 00:10:35,350
だから私はユーザーの検索とそれを行うでしょう。

143
00:10:35,480 --> 00:10:38,570
そして、私は見つけるものを使うつもりです。

144
00:10:38,740 --> 00:10:40,660
そうでなければ、findは私に配列を与え、私はちょうど1つのものを戻したい。

145
00:10:40,820 --> 00:10:44,760
だから、名前がHermione

146
00:10:44,780 --> 00:10:52,190
Grangerの場所を見つけることができない場合は、標準のコールバックエラーを実行し、このユーザーに電話するだけです。

147
00:10:52,190 --> 00:10:58,180
うまくいけば、あなたは今、それに慣れています。

148
00:10:58,220 --> 00:11:00,670
&nbsp;

149
00:11:00,860 --> 00:11:05,990
これはここではコールバックで、私たちがモンゴースで何かをするたびに書いています。それから私たちはちょうどそれをやります。

150
00:11:05,990 --> 00:11:06,750
&nbsp;

151
00:11:06,950 --> 00:11:07,970
&nbsp;

152
00:11:10,660 --> 00:11:15,770
これまで相談ダイアログのエラーがあった場合、それ以外の場合は常にユーザーを不具合させ、余分なブラケットを持っています。

153
00:11:20,030 --> 00:11:26,360
だから、これは私の新しい背中に何も新しいものを見つけることではありません。

154
00:11:26,360 --> 00:11:29,570
私たちはただ新しいユーザーを探していて、うまくいきます。

155
00:11:29,570 --> 00:11:34,430
ユーザーが戻ってきます。

156
00:11:34,430 --> 00:11:36,200
彼女の名前は彼女がHogwartsで彼女のお金をEメールで送る彼女の心です。

157
00:11:36,290 --> 00:11:39,030
今は別の投稿を追加したいと考えています。なぜなら、これは1対1であるはずだからです。

158
00:11:39,320 --> 00:11:44,690
したがって、1人のユーザーが複数の投稿を持つことができます。

159
00:11:44,720 --> 00:11:46,940
今、それをやりましょう。

160
00:11:47,030 --> 00:11:48,680
だから私たちがユーザーを見つけたらelseの内側に新しい投稿を追加するコードを実行して、このユーザーが以前と同じようにプッシュアップしているように見えますが、今回は別の投稿を押してプッシュしますタイトルとタイトルは3つです。

161
00:11:48,710 --> 00:11:56,390
&nbsp;

162
00:11:56,390 --> 00:12:03,410
&nbsp;

163
00:12:03,410 --> 00:12:08,280
私は本当に嫌いで、内容はますます多くなります。

164
00:12:08,600 --> 00:12:16,490
そして、ボルデモート。

165
00:12:16,940 --> 00:12:18,150
非常に創造的なポストは、私に思い出させるすべての権利は、我々は先に行くとこれを保存します。

166
00:12:18,350 --> 00:12:23,020
だから私たちはまだユーザーを保存する必要がありますし、その後私たちはコールバックに追加します。

167
00:12:23,060 --> 00:12:31,360
これらのエラーのもう1つ。

168
00:12:31,460 --> 00:12:33,470
そして、このユーザーをもう一度呼び出します。

169
00:12:33,710 --> 00:12:36,440
そして、ここではエラーコンソールのログエラーが発生した場合は、代わりにログユーザーをキャンセルします。

170
00:12:36,440 --> 00:12:47,660
これは、コールバックと呼ばれる人の話です。

171
00:12:47,660 --> 00:12:50,240
地獄私たちはここで多くのコールバックを持っています。

172
00:12:50,240 --> 00:12:52,570
&nbsp;

173
00:12:52,670 --> 00:12:58,190
私たちはこの最初のものを持っています。この最初のものは、私たちが得ているユーザを見つけてから新しい投稿をしていくことを心に込めています。

174
00:12:58,190 --> 00:12:59,780
しかし、実際にはデータベースに追加されません。

175
00:13:00,090 --> 00:13:02,050
私たちはそれを保存しなければなりません。

176
00:13:02,120 --> 00:13:03,600
それで、ここでユーザーを保存し、このユーザーを保存します。

177
00:13:03,800 --> 00:13:07,330
&nbsp;

178
00:13:07,400 --> 00:13:13,640
これらの2つは、ユーザーが最初に気がついたときに戻ってきて、保存しているユーザーを指しています。このユーザーは、保存から戻ってくるものを参照しています。

179
00:13:13,640 --> 00:13:19,010
したがって、このユーザーはここに新しい投稿が追加され、データベースに保存されます。

180
00:13:19,040 --> 00:13:24,170
それはMongoから私たちに戻ってくるデータです。それから私たちはそれを印刷しています。

181
00:13:24,290 --> 00:13:29,390
今すぐ試してみましょう。

182
00:13:29,390 --> 00:13:30,340
だから私はこの最初の反プロットログを取り除く。

183
00:13:30,500 --> 00:13:33,200
そのようにしておきます。

184
00:13:33,230 --> 00:13:34,890
&nbsp;

185
00:13:34,970 --> 00:13:40,380
ログに関するアカウントを妨害する他のコードが実行されていないことを確認しましょう。

186
00:13:40,380 --> 00:13:41,400
それを実行しましょう。

187
00:13:41,780 --> 00:13:43,970
大丈夫。

188
00:13:44,090 --> 00:13:44,750
&nbsp;

189
00:13:44,930 --> 00:13:52,190
だから私たちは今、最初の1つと2つ目の投稿を持つ1人のユーザーHermioneを印刷していることと、それらはどちらも単一のユーザーのpost属性の中に保存されているということです。

190
00:13:52,880 --> 00:13:59,180
それは1対多です。

191
00:13:59,180 --> 00:14:00,850
OK。

192
00:14:01,380 --> 00:14:01,660
それが私が示したいものです。

193
00:14:01,670 --> 00:14:02,940
これについて簡単に説明しましょう。

194
00:14:03,020 --> 00:14:04,890
そこでモンゴースに着くことから始まり、2つのモデルがあり、彼らは独立してスタートしました。

195
00:14:04,940 --> 00:14:10,190
そして、このポストスキーマ配列をユーザースキーマに追加することによってそれらを関連づけました。

196
00:14:10,370 --> 00:14:15,380
これで、ユーザーは投稿の配列を持ち、空になります。

197
00:14:15,590 --> 00:14:19,190
&nbsp;

198
00:14:19,430 --> 00:14:27,110
しかし、ポストドットプッシュを押すことでそれを追加し、次のビデオに保存し、オブジェクト参照と呼ばれるものを使用してデータを関連付ける別の方法を示しました。

199
00:14:27,110 --> 00:14:31,290
&nbsp;
