1
00:00:03,680 --> 00:00:07,560
في هذا التمرين، سنستمر في العمل على

2
00:00:07,560 --> 00:00:11,190
خادم Mongoose العقدة الذي قمنا بتطويره في التمرين السابق.

3
00:00:11,190 --> 00:00:13,770
و سنفعل اختلافا آخر من ذلك.

4
00:00:13,770 --> 00:00:19,190
بالإضافة إلى ذلك، سننظر أيضًا في كيفية دعم Mongoose للمستندات الفرعية،

5
00:00:19,190 --> 00:00:22,760
وهذا يمكننا من تخزين

6
00:00:22,760 --> 00:00:26,860
مستند داخل مستند لتخزين معلومات إضافية.

7
00:00:26,860 --> 00:00:31,055
دعونا ننظر إلى ذلك في التمرين المقبل.

8
00:00:31,055 --> 00:00:36,905
استمرار مع المثال الذي كنا نعمل عليه، الآن،

9
00:00:36,905 --> 00:00:39,680
في ملف index.js،

10
00:00:39,680 --> 00:00:46,040
والآن سنرى طريقة جديدة لإنشاء طبق وإضافته إلى تطبيقنا.

11
00:00:46,040 --> 00:00:51,590
لذلك، في وقت سابق كنا قد فعلت فار NewDish والأطباق وتحديد الطبق.

12
00:00:51,590 --> 00:00:57,980
الآن، في هذه الحالة سوف نستخدم طريقة جديدة تسمى الأطباق إنشاء والتي تأخذ،

13
00:00:57,980 --> 00:01:05,950
كمعلمة، نيوديش لإنشاء ومن ثم يحفظه في تطبيقنا.

14
00:01:05,950 --> 00:01:11,165
لذلك، بدلا من القيام بهذا حفظ نيوديش،

15
00:01:11,165 --> 00:01:18,550
يمكننا ببساطة إزالة ذلك والتعامل مباشرة مع الأطباق خلق طريقة هنا.

16
00:01:18,550 --> 00:01:22,850
لذا، فإن طريقة إنشاء الأطباق ستأخذ كمعلمة

17
00:01:22,850 --> 00:01:27,320
مستند جديد يحتاج إلى تخزينه في قاعدة البيانات الخاصة بنا،

18
00:01:27,320 --> 00:01:31,355
ثم ينشئ ويضيف المستند إلى قاعدة البيانات.

19
00:01:31,355 --> 00:01:35,285
بعد ذلك، يمكننا الاستمرار في بقية التمرين.

20
00:01:35,285 --> 00:01:40,390
سيظهر هذا التعديل الطفيف

21
00:01:40,390 --> 00:01:45,790
أن نفس التطبيق يعمل بنفس الطريقة تمامًا كما كان من قبل.

22
00:01:45,790 --> 00:01:47,365
لذلك، مع هذا التغيير،

23
00:01:47,365 --> 00:01:50,080
اسمحوا لي فقط تغيير المسافة البادئة

24
00:01:50,080 --> 00:01:56,370
هنا بحيث تسلسل الأساليب ثم واضح جدا.

25
00:01:56,370 --> 00:02:01,130
لذلك، ونحن أولا القيام الأطباق خلق التي سوف يعود

26
00:02:01,130 --> 00:02:04,300
وعد، ومن ثم تغيير إلى ذلك الحين وبعد ذلك سنقوم بتنفيذ

27
00:02:04,300 --> 00:02:10,255
الخطوات المتبقية على الطبق الذي تم إنشاؤه.

28
00:02:10,255 --> 00:02:15,905
دعونا حفظ التغييرات ومن ثم الذهاب ونلقي نظرة على هذا الإصدار من الخادم لدينا.

29
00:02:15,905 --> 00:02:17,475
الذهاب إلى المحطة،

30
00:02:17,475 --> 00:02:20,675
مرة أخرى، تشغيل التطبيق،

31
00:02:20,675 --> 00:02:28,040
ونحن نرى أنه سيخلق بالضبط نفس الاختلاف السابق للخادم.

32
00:02:28,040 --> 00:02:33,290
لذلك، نحن إنشاء طبق جديد هنا ومن ثم إدراجه

33
00:02:33,290 --> 00:02:36,800
في قاعدة البيانات وبعد ذلك

34
00:02:36,800 --> 00:02:40,760
نحن استرداد هذا الطبق ومن ثم الطباعة على الشاشة.

35
00:02:40,760 --> 00:02:43,610
مع هذا التغيير، هذا هو الوقت المناسب بالنسبة لنا للقيام

36
00:02:43,610 --> 00:02:47,795
git الالتزام مع الرسالة Mongoose الجزء الثاني.

37
00:02:47,795 --> 00:02:57,450
لذا، دعنا نتحقق من حالة git ثم نضيف الملف إلى المستودع،

38
00:02:57,450 --> 00:03:06,390
ثم نقوم بتنفيذ git مع الرسالة Mongoose الجزء الثاني.

39
00:03:06,390 --> 00:03:08,800
الاستمرار في التمرين،

40
00:03:08,800 --> 00:03:13,910
في الخطوة التالية سنقوم بإضافة وثيقة فرعية

41
00:03:13,910 --> 00:03:19,385
إلى الوثيقة ونرى كيف يمكن تخزين الوثائق الفرعية في قاعدة بياناتنا.

42
00:03:19,385 --> 00:03:22,385
لذا، انتقل إلى ملف dishes.js،

43
00:03:22,385 --> 00:03:30,135
سأقوم بإضافة مخطط آخر إلى ملف dishes.js الخاص بي يسمى

44
00:03:30,135 --> 00:03:37,360
مخطط التعليق

45
00:03:37,360 --> 00:03:42,230
ثم حدد هذا كمخطط جديد.

46
00:03:42,320 --> 00:03:44,880
في مخطط التعليق هذا،

47
00:03:44,880 --> 00:03:46,895
كما كنت تتوقع بالفعل،

48
00:03:46,895 --> 00:03:51,360
سنستخدم هذا لتخزين التعليقات حول الطبق.

49
00:03:51,360 --> 00:03:56,380
لذلك، سوف تحتوي التعليقات على حقل تصنيف

50
00:03:56,380 --> 00:04:02,930
وهو من رقم النوع،

51
00:04:02,930 --> 00:04:07,250
والحد الأدنى لقيمته هو واحد،

52
00:04:07,250 --> 00:04:15,290
والقيمة القصوى هي خمسة والمطلوب صحيح.

53
00:04:15,290 --> 00:04:20,120
لذلك، يمكنك أن ترى أنه عند استخدام حقل مع رقم النوع،

54
00:04:20,120 --> 00:04:26,085
يمكنك تحديد الحدود له إذا اخترت.

55
00:04:26,085 --> 00:04:35,640
ثم الحقل التالي هو حقل تعليق سيكون من سلسلة النوع.

56
00:04:35,640 --> 00:04:41,780
لذلك، هذا يخزن رسالة ومن ثم مطلوب

57
00:04:41,780 --> 00:04:49,300
هو صحيح وبعد ذلك سنقوم أيضا إضافة حقل آخر يسمى المؤلف،

58
00:04:51,220 --> 00:05:01,120
وهو من نوع سلسلة والمطلوب هو صحيح.

59
00:05:01,120 --> 00:05:07,600
سنقوم أيضًا بإضافة حقل الطابع الزمني لهذا،

60
00:05:07,600 --> 00:05:11,875
وتعيين ذلك إلى true.

61
00:05:11,875 --> 00:05:14,570
لذلك، لكل تعليق تتم إضافته،

62
00:05:14,570 --> 00:05:17,570
سنقوم أيضًا بتخزين الطابع الزمني المقابل.

63
00:05:17,570 --> 00:05:20,990
لذلك، الآن بعد أن أعلنا مخطط تعليق،

64
00:05:20,990 --> 00:05:27,465
يمكننا بعد ذلك المضي قدما وتعديل مخطط الطبق لتكون قادرة على تخزين التعليقات.

65
00:05:27,465 --> 00:05:29,745
لذلك، داخل مخطط الأطباق،

66
00:05:29,745 --> 00:05:37,370
يمكننا إضافة التعليقات

67
00:05:37,370 --> 00:05:44,750
التي هي عبارة عن مجموعة من مخطط تعليق النوع،

68
00:05:44,750 --> 00:05:49,705
مما يعني أن كل كائن طبق،

69
00:05:49,705 --> 00:05:57,860
مستند طبق يمكن أن تحتوي على تعليقات متعددة المخزنة داخل صفيف داخل مستند الطبق.

70
00:05:57,860 --> 00:06:04,830
لذلك، هذه هي وثائق التعليق تصبح وثائق فرعية داخل وثيقة طبق.

71
00:06:04,830 --> 00:06:08,524
لذلك، نحن تخزين جميع التعليقات حول الطبق داخل

72
00:06:08,524 --> 00:06:13,765
الطبق نفسه كمجموعة من وثائق التعليق.

73
00:06:13,765 --> 00:06:20,825
لذا، هذا هو استخدام المستند الفرعي في Mongoose.

74
00:06:20,825 --> 00:06:28,395
بعد ذلك، دعونا نذهب إلى ملف index.js ثم تعديل ملف index.js لدينا.

75
00:06:28,395 --> 00:06:32,640
هنا، فإنها تخلق الطبق تماما كما كان من قبل.

76
00:06:32,640 --> 00:06:35,010
ثم بعد إنشاء الطبق،

77
00:06:35,010 --> 00:06:38,715
ثم نحن وحدة التحكم تسجيل الطبق.

78
00:06:38,715 --> 00:06:43,080
بعد ذلك، سنقوم بتحديث الطبق.

79
00:06:43,080 --> 00:06:49,925
لذلك، سنقول أطباق تجد عن طريق الهوية والتحديث.

80
00:06:49,925 --> 00:06:55,345
لذلك، سنقوم بتعديل الطبق الذي أدخلناه للتو في الخطوة السابقة.

81
00:06:55,345 --> 00:06:58,690
لذلك، سوف نقول، «البحث عن طريق الهوية والتحديث.»

82
00:06:58,690 --> 00:07:01,930
ونحن في طريقنا إلى توريد.

83
00:07:01,930 --> 00:07:05,305
في هذا يأخذ معلمتين،

84
00:07:05,305 --> 00:07:10,045
المعلمة الأولى هي الطبق.

85
00:07:10,045 --> 00:07:15,205
الآن، هذا الطبق _id بالطبع يشير إلى هذا الطبق الذي قمنا بإدراجه للتو،

86
00:07:15,205 --> 00:07:19,895
وبعد ذلك سنقوم بتعديل هذا الطبق نفسه في الخطوة التالية.

87
00:07:19,895 --> 00:07:22,420
لذا، سنقول، «صحن. _id.» وبعد ذلك،

88
00:07:22,420 --> 00:07:34,610
بين قوسين، نحدد $ مجموعة، وصف،

89
00:07:36,600 --> 00:07:45,580
اختبار محدث وصحيح جديد.

90
00:07:45,580 --> 00:07:49,240
لذلك، هذا، نحن تعديل الطبق الذي قمنا

91
00:07:49,240 --> 00:07:54,865
بإدراجه للتو عن طريق تحديث وصفه هناك.

92
00:07:54,865 --> 00:07:58,735
الآن، هذا يجب أن يكون محاطاً بالداخل

93
00:07:58,735 --> 00:08:01,310
هذا العلم الثاني الذي نقوم بتوريده هنا،

94
00:08:01,310 --> 00:08:03,985
القولون الجديد يساوي صحيح،

95
00:08:03,985 --> 00:08:07,895
يعني أنه بمجرد اكتمال تحديث الطبق،

96
00:08:07,895 --> 00:08:11,075
ثم هذا سيعود الطبق، طبق

97
00:08:11,075 --> 00:08:14,530
محدث مرة أخرى لنا.

98
00:08:14,530 --> 00:08:20,350
لذلك، هذا هو السبب في استخدام هذا العلم هنا، على سبيل المثال، صحيح جديد.

99
00:08:20,350 --> 00:08:25,275
لذلك، سيتم إرجاع هذا الطبق في الخطوة التالية.

100
00:08:25,275 --> 00:08:32,905
وهكذا، نحن ذاهبون إلى أخذ ذلك الطبق ومن ثم طباعة ذلك الطبق.

101
00:08:32,905 --> 00:08:34,540
لذلك، في الخطوة التالية،

102
00:08:34,540 --> 00:08:41,845
سنقوم بتعديل هذا ونقول، «هذا، ثم طبق.»

103
00:08:41,845 --> 00:08:45,790
وبعد ذلك، سنقوم بعمل سجل وحدة التحكم من الطبق.

104
00:08:45,790 --> 00:08:55,060
ثم بعد ذلك، سنقوم بإدراج تعليق في الطبق.

105
00:08:55,060 --> 00:09:00,405
لذلك، سوف نقول، «طبق، تعليقات، دفع.»

106
00:09:00,405 --> 00:09:04,420
أذكر أن التعليقات هي حقل داخل الطبق.

107
00:09:04,420 --> 00:09:06,930
لذا، بالعودة إلى المخطط،

108
00:09:06,930 --> 00:09:12,685
نرى أن هذه التعليقات عبارة عن مصفوفة من نوع التعليقات.

109
00:09:12,685 --> 00:09:16,360
لذلك، مما يعني أنه يمكننا دفع عنصر في هذه الصفيف.

110
00:09:16,360 --> 00:09:17,700
لذا، بالعودة إلى هنا،

111
00:09:17,700 --> 00:09:21,180
سنقول، «تعليقات الطبق تدفع».

112
00:09:21,180 --> 00:09:27,380
وبعد ذلك، سوف ندفع وثيقة تعليق إلى الطبق هنا.

113
00:09:27,380 --> 00:09:31,415
لذلك، سأقول، «تعليقات طبق دفع.»

114
00:09:31,415 --> 00:09:33,990
وحدد الحقول هنا.

115
00:09:33,990 --> 00:10:00,540
لذا، سنقول، «تقييم خمسة، تعليق ومؤلف.»

116
00:10:07,890 --> 00:10:17,155
وهكذا، وهذا سيدفع هذا التعليق إلى حقل التعليق من هذا الطبق المحدد.

117
00:10:17,155 --> 00:10:20,065
لذا، الآن بعد أن قمنا بتعديل

118
00:10:20,065 --> 00:10:24,655
الطبق، الخطوة التالية التي سنقوم بها هي،

119
00:10:24,655 --> 00:10:30,030
دعني أغلق هذا ثم أضعه فيه، ثم هناك.

120
00:10:30,030 --> 00:10:32,400
سأعود و أصلح ذلك في فترة قصيرة

121
00:10:32,400 --> 00:10:34,555
لذلك، الآن بعد أن قمنا بتعديل الطبق،

122
00:10:34,555 --> 00:10:37,630
نحتاج إلى حفظ الطبق.

123
00:10:37,630 --> 00:10:42,430
لذا، نحن سَنَقُولُ، «صحن العودة آمن.»

124
00:10:42,430 --> 00:10:44,280
لذلك، في هذه الخطوة،

125
00:10:44,280 --> 00:10:47,520
نقوم بإدخال تعليق في الطبق،

126
00:10:47,520 --> 00:10:51,055
الطبق الذي قمنا بإنشائه وتحديثه للتو،

127
00:10:51,055 --> 00:10:55,360
ثم نقوم بحفظ هذا التعليق؛

128
00:10:55,360 --> 00:11:00,350
وبعد ذلك، سيعود هذا الطبق.

129
00:11:00,350 --> 00:11:07,480
وعندما يتم إرجاع الطبق في رد الاتصال التالي،

130
00:11:07,480 --> 00:11:15,160
سأقول بعد ذلك، «طبق سجل وحدة التحكم».

131
00:11:15,160 --> 00:11:16,240
وبعد ذلك،

132
00:11:16,240 --> 00:11:17,920
سوف نقول، «العودة».

133
00:11:17,920 --> 00:11:22,435
لذلك، مع هذا، قمنا بتعديل ملف index.js لدينا.

134
00:11:22,435 --> 00:11:27,265
دعونا حفظ التغييرات وإلقاء نظرة على هذا التطبيق.

135
00:11:27,265 --> 00:11:29,135
الذهاب إلى المحطة،

136
00:11:29,135 --> 00:11:34,770
دعونا تشغيل نبم بداية ومن ثم نرى القيمة الناتجة هنا.

137
00:11:34,770 --> 00:11:38,570
لذا، بالعودة، نرى أنه في الخطوة الأولى،

138
00:11:38,570 --> 00:11:45,430
أنشأنا هذا الطبق هنا مع الاسم والوصف كما قدمنا في وقت سابق.

139
00:11:45,430 --> 00:11:49,675
وبعد ذلك، بمجرد إنشاء الطبق،

140
00:11:49,675 --> 00:11:50,980
في الخطوة الثانية،

141
00:11:50,980 --> 00:11:55,730
قمنا بتحديث الطبق ثم طبع النسخة المحدثة من الطبق.

142
00:11:55,730 --> 00:11:59,325
لذلك، يتم طباعة النسخة المحدثة من الطبق هناك حق.

143
00:11:59,325 --> 00:12:03,940
ويمكنك أن ترى أن الوصف قد تم تحديثه من الحالة السابقة،

144
00:12:03,940 --> 00:12:10,210
ولكن المعرف يبقى بالضبط نفس الطبق الذي أنشأنا في وقت سابق.

145
00:12:10,210 --> 00:12:11,720
وحقل التعليقات،

146
00:12:11,720 --> 00:12:12,875
كما ترون هنا،

147
00:12:12,875 --> 00:12:15,150
هو مصفوفة فارغة والمدخن.

148
00:12:15,150 --> 00:12:22,555
في الخطوة الثالثة، ندفع التعليق في طبقنا هنا؛

149
00:12:22,555 --> 00:12:25,560
وبعد ذلك،

150
00:12:25,560 --> 00:12:28,880
تمت إضافة هذا التعليق الخاص الذي أضفناه إلى مجموعة التعليقات هذه.

151
00:12:28,880 --> 00:12:32,475
لذلك، يمكنك أن ترى أن التعليق يتم تضمينه هنا،

152
00:12:32,475 --> 00:12:39,440
وهذا هو الطبق المحدث الذي تم طباعته الآن على الشاشة هنا.

153
00:12:39,440 --> 00:12:45,270
لذلك، يمكنك أن ترى أننا قد فعلت عدة خطوات واحدا تلو الآخر مع طبقنا.

154
00:12:45,270 --> 00:12:46,840
أنشأنا الطبق أولا،

155
00:12:46,840 --> 00:12:48,460
ثم قمنا بتحديث الطبق،

156
00:12:48,460 --> 00:12:51,340
ثم أدخلنا تعليقا في الطبق،

157
00:12:51,340 --> 00:12:55,745
وهو وثيقة فرعية داخل وثيقة الطبق.

158
00:12:55,745 --> 00:12:59,035
وبعد ذلك، طبعنا النتيجة لك.

159
00:12:59,035 --> 00:13:02,390
مع هذا، نكمل هذا التمرين.

160
00:13:02,390 --> 00:13:06,500
في هذا التمرين، رأينا كيف يمكننا،

161
00:13:06,500 --> 00:13:10,930
أولاً، إنشاء طبق باستخدام أطباق إنشاء،

162
00:13:10,930 --> 00:13:14,520
ثم رأينا استخدام المستندات الفرعية: هناك،

163
00:13:14,520 --> 00:13:18,060
قمنا بتعريف مخطط داخل

164
00:13:18,060 --> 00:13:21,720
ملف dishes.js ثم استخدام مخطط التعليق الذي حددناه

165
00:13:21,720 --> 00:13:29,130
ثم تعريف الحقل في مخطط الأطباق ك من نوع التعليق.

166
00:13:29,130 --> 00:13:32,810
ثم، في ملف index.js،

167
00:13:32,810 --> 00:13:35,445
تمكنا من إنشاء طبق،

168
00:13:35,445 --> 00:13:38,210
وتحديث الطبق وأيضا دفع

169
00:13:38,210 --> 00:13:44,140
وثيقة تعليق في الطبق ومن ثم حفظ التغييرات هنا.

170
00:13:44,140 --> 00:13:46,480
مع هذا، نكمل هذا التمرين.

171
00:13:46,480 --> 00:13:54,170
هذا هو الوقت المناسب بالنسبة لك للقيام Git Kermit مع الرسالة، «Mongoose الجزء الثالث».