1
00:00:03,680 --> 00:00:07,560
Trong bài tập này, chúng tôi sẽ tiếp tục làm việc trên

2
00:00:07,560 --> 00:00:11,190
nút Mongoose server mà chúng tôi đã phát triển trong bài tập trước đó.

3
00:00:11,190 --> 00:00:13,770
Chúng ta sẽ làm một biến thể khác của điều đó.

4
00:00:13,770 --> 00:00:19,190
Ngoài ra, chúng ta cũng sẽ xem xét cách Mongoose hỗ trợ các tài liệu con,

5
00:00:19,190 --> 00:00:22,760
và điều này cho phép chúng ta lưu trữ một tài liệu bên trong

6
00:00:22,760 --> 00:00:26,860
một tài liệu để lưu trữ thông tin bổ sung.

7
00:00:26,860 --> 00:00:31,055
Hãy nhìn vào điều đó trong bài tập tiếp theo.

8
00:00:31,055 --> 00:00:36,905
Tiếp tục với ví dụ mà chúng tôi đã làm việc, bây giờ,

9
00:00:36,905 --> 00:00:39,680
trong tệp index.js,

10
00:00:39,680 --> 00:00:46,040
bây giờ chúng ta sẽ thấy một cách mới để tạo ra một món ăn và thêm nó vào ứng dụng của chúng tôi.

11
00:00:46,040 --> 00:00:51,590
Vì vậy, trước đó chúng tôi đã thực hiện var NewDish và các món ăn và xác định các món ăn.

12
00:00:51,590 --> 00:00:57,980
Bây giờ, trong trường hợp này chúng ta sẽ sử dụng một phương pháp mới gọi là món ăn tạo ra mà mất,

13
00:00:57,980 --> 00:01:05,950
như một tham số, NewDish để tạo ra và sau đó lưu nó trong ứng dụng của chúng tôi.

14
00:01:05,950 --> 00:01:11,165
Vì vậy, thay vì làm điều này NewDish tiết kiệm,

15
00:01:11,165 --> 00:01:18,550
chúng ta có thể đơn giản loại bỏ và trực tiếp đối phó với các món ăn tạo ra phương pháp ở đây.

16
00:01:18,550 --> 00:01:22,850
Vì vậy, các món ăn tạo ra phương pháp sẽ lấy như một tham số

17
00:01:22,850 --> 00:01:27,320
một tài liệu mới cần được lưu trữ trong cơ sở dữ liệu của chúng tôi,

18
00:01:27,320 --> 00:01:31,355
và sau đó tạo ra và thêm tài liệu vào cơ sở dữ liệu.

19
00:01:31,355 --> 00:01:35,285
Sau đó, chúng ta có thể tiếp tục với phần còn lại của bài tập.

20
00:01:35,285 --> 00:01:40,390
Sửa đổi nhỏ này sẽ cho thấy

21
00:01:40,390 --> 00:01:45,790
rằng cùng một ứng dụng chạy chính xác theo cách như trước.

22
00:01:45,790 --> 00:01:47,365
Vì vậy, với sự thay đổi này,

23
00:01:47,365 --> 00:01:50,080
hãy để tôi chỉ thay đổi thụt lề

24
00:01:50,080 --> 00:01:56,370
ở đây để chuỗi các phương pháp sau đó là rất rõ ràng.

25
00:01:56,370 --> 00:02:01,130
Vì vậy, trước tiên chúng tôi làm một món ăn tạo ra mà sẽ trả lại một lời hứa,

26
00:02:01,130 --> 00:02:04,300
và sau đó thay đổi để sau đó và sau đó chúng tôi sẽ thực hiện

27
00:02:04,300 --> 00:02:10,255
các bước còn lại trên món ăn được tạo ra.

28
00:02:10,255 --> 00:02:15,905
Hãy lưu các thay đổi và sau đó đi và xem phiên bản này của máy chủ của chúng tôi.

29
00:02:15,905 --> 00:02:17,475
Đi đến thiết bị đầu cuối,

30
00:02:17,475 --> 00:02:20,675
một lần nữa, chạy ứng dụng,

31
00:02:20,675 --> 00:02:28,040
chúng ta thấy rằng nó sẽ tạo ra chính xác giống như biến thể trước đó của máy chủ.

32
00:02:28,040 --> 00:02:33,290
Vì vậy, chúng tôi đang tạo ra một món ăn mới ở đây và sau đó chèn nó

33
00:02:33,290 --> 00:02:36,800
vào cơ sở dữ liệu và sau đó chúng tôi

34
00:02:36,800 --> 00:02:40,760
đang lấy món ăn đó và sau đó in ra trên màn hình.

35
00:02:40,760 --> 00:02:43,610
Với sự thay đổi này, đây là thời điểm tốt để chúng tôi thực hiện

36
00:02:43,610 --> 00:02:47,795
một cam kết git với thông điệp Mongoose phần hai.

37
00:02:47,795 --> 00:02:57,450
Vì vậy, chúng ta hãy kiểm tra trạng thái git và sau đó thêm tệp vào kho lưu trữ,

38
00:02:57,450 --> 00:03:06,390
và sau đó thực hiện một cam kết git với thông điệp Mongoose phần hai.

39
00:03:06,390 --> 00:03:08,800
Tiếp tục với bài tập,

40
00:03:08,800 --> 00:03:13,910
trong bước tiếp theo chúng ta sẽ thêm vào một tài liệu phụ vào tài liệu

41
00:03:13,910 --> 00:03:19,385
và xem cách các tài liệu phụ có thể được lưu trữ trong cơ sở dữ liệu của chúng tôi.

42
00:03:19,385 --> 00:03:22,385
Vì vậy, đi đến tập tin dishes.js,

43
00:03:22,385 --> 00:03:30,135
Tôi sẽ thêm vào một giản đồ vào tập tin dishes.js của tôi gọi là

44
00:03:30,135 --> 00:03:37,360
bình luận Schema và

45
00:03:37,360 --> 00:03:42,230
sau đó xác định điều này như Schema mới.

46
00:03:42,320 --> 00:03:44,880
Trong lược đồ bình luận này,

47
00:03:44,880 --> 00:03:46,895
như bạn đã mong đợi,

48
00:03:46,895 --> 00:03:51,360
chúng tôi sẽ sử dụng điều này để lưu trữ ý kiến về món ăn.

49
00:03:51,360 --> 00:03:56,380
Vì vậy, các ý kiến sẽ chứa một trường đánh giá

50
00:03:56,380 --> 00:04:02,930
là số loại,

51
00:04:02,930 --> 00:04:07,250
và giá trị tối thiểu của nó là một,

52
00:04:07,250 --> 00:04:15,290
giá trị tối đa là năm và bắt buộc là đúng.

53
00:04:15,290 --> 00:04:20,120
Vì vậy, bạn có thể thấy rằng khi bạn sử dụng một trường với số loại,

54
00:04:20,120 --> 00:04:26,085
bạn có thể chỉ định ranh giới cho nó nếu bạn chọn.

55
00:04:26,085 --> 00:04:35,640
Sau đó, lĩnh vực tiếp theo là một lĩnh vực nhận xét mà sẽ là của chuỗi loại.

56
00:04:35,640 --> 00:04:41,780
Vì vậy, điều này lưu trữ một tin nhắn và sau đó yêu cầu

57
00:04:41,780 --> 00:04:49,300
là đúng và sau đó chúng tôi cũng sẽ thêm một lĩnh vực gọi

58
00:04:51,220 --> 00:05:01,120
là tác giả, đó là của chuỗi loại và bắt buộc là đúng.

59
00:05:01,120 --> 00:05:07,600
Chúng tôi cũng sẽ thêm trường dấu thời gian cho điều này,

60
00:05:07,600 --> 00:05:11,875
và thiết lập đó thành true.

61
00:05:11,875 --> 00:05:14,570
Vì vậy, đối với mỗi nhận xét được thêm vào,

62
00:05:14,570 --> 00:05:17,570
chúng tôi cũng sẽ lưu trữ dấu thời gian tương ứng.

63
00:05:17,570 --> 00:05:20,990
Vì vậy, bây giờ mà chúng tôi đã tuyên bố một lược đồ bình luận,

64
00:05:20,990 --> 00:05:27,465
sau đó chúng tôi có thể đi trước và sửa đổi lược đồ món ăn để có thể lưu trữ ý kiến.

65
00:05:27,465 --> 00:05:29,745
Vì vậy, trong lược đồ món ăn,

66
00:05:29,745 --> 00:05:37,370
chúng ta có thể thêm vào ý kiến

67
00:05:37,370 --> 00:05:44,750
đó là một mảng của lược đồ kiểu bình luận,

68
00:05:44,750 --> 00:05:49,705
do đó có nghĩa là mỗi đối tượng món ăn,

69
00:05:49,705 --> 00:05:57,860
tài liệu món ăn có thể có nhiều ý kiến được lưu trữ trong một mảng bên trong tài liệu món ăn.

70
00:05:57,860 --> 00:06:04,830
Vì vậy, đây là các tài liệu nhận xét trở thành tài liệu phụ bên trong một tài liệu món ăn.

71
00:06:04,830 --> 00:06:08,524
Vì vậy, chúng tôi đang lưu trữ tất cả các ý kiến về món ăn bên

72
00:06:08,524 --> 00:06:13,765
trong món ăn chính nó như là một mảng các tài liệu bình luận.

73
00:06:13,765 --> 00:06:20,825
Vì vậy, đây là việc sử dụng các tài liệu phụ trong Mongoose.

74
00:06:20,825 --> 00:06:28,395
Sau đó, chúng ta hãy đi đến tập tin index.js và sau đó sửa đổi tập tin index.js của chúng tôi.

75
00:06:28,395 --> 00:06:32,640
Ở đây, họ tạo ra món ăn giống như trước đây.

76
00:06:32,640 --> 00:06:35,010
Sau đó, sau khi chúng tôi tạo ra các món ăn,

77
00:06:35,010 --> 00:06:38,715
sau đó chúng tôi giao diện điều khiển đăng nhập các món ăn.

78
00:06:38,715 --> 00:06:43,080
Sau đó, chúng tôi sẽ cập nhật các món ăn.

79
00:06:43,080 --> 00:06:49,925
Vì vậy, chúng ta sẽ nói các món ăn tìm theo ID và cập nhật.

80
00:06:49,925 --> 00:06:55,345
Vì vậy, chúng tôi sẽ sửa đổi các món ăn mà chúng tôi chỉ cần chèn vào trong bước trước đó.

81
00:06:55,345 --> 00:06:58,690
Vì vậy, chúng tôi sẽ nói, “Tìm theo ID và cập nhật.”

82
00:06:58,690 --> 00:07:01,930
Và chúng ta sẽ tiếp tế.

83
00:07:01,930 --> 00:07:05,305
Trong điều này có hai tham số,

84
00:07:05,305 --> 00:07:10,045
tham số đầu tiên là món ăn.

85
00:07:10,045 --> 00:07:15,205
Bây giờ, món ăn này. _id tất nhiên đề cập đến món ăn này mà chúng tôi vừa chèn,

86
00:07:15,205 --> 00:07:19,895
và sau đó chúng tôi sẽ sửa đổi cùng một món ăn trong bước tiếp theo.

87
00:07:19,895 --> 00:07:22,420
Vì vậy, chúng ta sẽ nói, “Dish. _id.” Và sau đó,

88
00:07:22,420 --> 00:07:34,610
trong dấu ngoặc đơn, chúng tôi chỉ định $set, mô tả,

89
00:07:36,600 --> 00:07:45,580
kiểm tra cập nhật và true mới.

90
00:07:45,580 --> 00:07:49,240
Vì vậy, điều này, chúng tôi đang sửa đổi các món ăn mà chúng tôi

91
00:07:49,240 --> 00:07:54,865
vừa chèn bằng cách cập nhật mô tả của nó ở đó.

92
00:07:54,865 --> 00:07:58,735
Bây giờ, cái này phải được bao bọc bên trong.

93
00:07:58,735 --> 00:08:01,310
Lá cờ thứ hai mà chúng tôi đang cung cấp ở đây,

94
00:08:01,310 --> 00:08:03,985
đại tràng mới bằng đúng,

95
00:08:03,985 --> 00:08:07,895
có nghĩa là một khi cập nhật của món ăn đã hoàn tất,

96
00:08:07,895 --> 00:08:11,075
sau đó điều này sẽ trả lại món ăn,

97
00:08:11,075 --> 00:08:14,530
cập nhật món ăn trở lại cho chúng tôi.

98
00:08:14,530 --> 00:08:20,350
Vì vậy, đó là lý do để sử dụng lá cờ này ở đây, nói, sự thật mới.

99
00:08:20,350 --> 00:08:25,275
Vì vậy, món ăn này sẽ được trả lại trong bước tiếp theo.

100
00:08:25,275 --> 00:08:32,905
Và vì vậy, chúng ta sẽ lấy cái đĩa đó và in ra cái đĩa đó.

101
00:08:32,905 --> 00:08:34,540
Vì vậy, trong bước tiếp theo,

102
00:08:34,540 --> 00:08:41,845
chúng ta sẽ sửa đổi điều này và nói, “Cái này, sau đó là món ăn.”

103
00:08:41,845 --> 00:08:45,790
Và sau đó, chúng tôi sẽ làm một bản ghi bàn điều khiển của món ăn.

104
00:08:45,790 --> 00:08:55,060
Sau đó, sau này, chúng tôi sẽ chèn một bình luận vào món ăn.

105
00:08:55,060 --> 00:09:00,405
Vì vậy, chúng ta sẽ nói, “Dish.Comments.Push.”

106
00:09:00,405 --> 00:09:04,420
Nhớ lại rằng các ý kiến là một lĩnh vực bên trong món ăn.

107
00:09:04,420 --> 00:09:06,930
Vì vậy, quay trở lại giản đồ,

108
00:09:06,930 --> 00:09:12,685
chúng ta thấy rằng ý kiến này là một mảng của các loại CommentSchema.

109
00:09:12,685 --> 00:09:16,360
Vì vậy, có nghĩa là chúng ta có thể đẩy một mục vào mảng này.

110
00:09:16,360 --> 00:09:17,700
Vì vậy, quay trở lại đây,

111
00:09:17,700 --> 00:09:21,180
chúng ta sẽ nói, “Ý kiến món ăn đẩy.”

112
00:09:21,180 --> 00:09:27,380
Và sau đó, chúng tôi sẽ đẩy một tài liệu nhận xét vào món ăn ở đây.

113
00:09:27,380 --> 00:09:31,415
Vì vậy, tôi sẽ nói, “Ý kiến món ăn đẩy.”

114
00:09:31,415 --> 00:09:33,990
Và chỉ định các trường ở đây.

115
00:09:33,990 --> 00:10:00,540
Vì vậy, chúng ta sẽ nói, “Đánh giá năm, bình luận và tác giả.”

116
00:10:07,890 --> 00:10:17,155
Và như vậy, điều này sẽ đẩy nhận xét này vào lĩnh vực bình luận của món ăn cụ thể này.

117
00:10:17,155 --> 00:10:20,065
Vì vậy, bây giờ chúng tôi đã sửa đổi món ăn,

118
00:10:20,065 --> 00:10:24,655
bước tiếp theo mà chúng tôi sẽ làm là,

119
00:10:24,655 --> 00:10:30,030
để tôi đóng nó lại và sau đó đặt nó vào nó, sau đó ở đó.

120
00:10:30,030 --> 00:10:32,400
Tôi sẽ quay lại và sửa chữa nó trong một thời gian ngắn.

121
00:10:32,400 --> 00:10:34,555
Vì vậy, bây giờ chúng tôi đã sửa đổi các món ăn,

122
00:10:34,555 --> 00:10:37,630
chúng ta cần phải lưu các món ăn.

123
00:10:37,630 --> 00:10:42,430
Vì vậy, chúng ta sẽ nói, “Trả lại món ăn an toàn.”

124
00:10:42,430 --> 00:10:44,280
Vì vậy, trong bước này,

125
00:10:44,280 --> 00:10:47,520
chúng tôi đang chèn một bình luận vào món ăn, món ăn

126
00:10:47,520 --> 00:10:51,055
mà chúng tôi vừa tạo ra và cập nhật,

127
00:10:51,055 --> 00:10:55,360
và sau đó chúng tôi đang lưu bình luận đó;

128
00:10:55,360 --> 00:11:00,350
và sau đó, điều này sẽ trả lại món ăn.

129
00:11:00,350 --> 00:11:07,480
Và khi món ăn được trả lại trong cuộc gọi lại tiếp theo,

130
00:11:07,480 --> 00:11:15,160
tôi sẽ sau đó nói, “Console log dish.”

131
00:11:15,160 --> 00:11:16,240
Và sau đó,

132
00:11:16,240 --> 00:11:17,920
chúng tôi sẽ nói, “Quay trở lại.”

133
00:11:17,920 --> 00:11:22,435
Vì vậy, với điều này, chúng tôi đã sửa đổi tập tin index.js của chúng tôi.

134
00:11:22,435 --> 00:11:27,265
Hãy lưu các thay đổi và xem ứng dụng này.

135
00:11:27,265 --> 00:11:29,135
Đi đến thiết bị đầu cuối,

136
00:11:29,135 --> 00:11:34,770
chúng ta hãy chạy npm bắt đầu và sau đó xem giá trị kết quả ở đây.

137
00:11:34,770 --> 00:11:38,570
Vì vậy, quay trở lại, chúng ta thấy rằng trong bước đầu tiên,

138
00:11:38,570 --> 00:11:45,430
chúng tôi đã tạo ra món ăn này ở đây với tên và mô tả như chúng tôi đã đưa ra trước đó.

139
00:11:45,430 --> 00:11:49,675
Và sau đó, một khi món ăn được tạo ra,

140
00:11:49,675 --> 00:11:50,980
trong bước thứ hai,

141
00:11:50,980 --> 00:11:55,730
chúng tôi cập nhật món ăn và sau đó in ra phiên bản cập nhật của món ăn.

142
00:11:55,730 --> 00:11:59,325
Vì vậy, phiên bản cập nhật của món ăn được in ra ngay tại đó.

143
00:11:59,325 --> 00:12:03,940
Và bạn có thể thấy rằng mô tả đã được cập nhật từ trường hợp trước đó,

144
00:12:03,940 --> 00:12:10,210
nhưng id vẫn chính xác giống như món ăn mà chúng tôi đã tạo ra trước đó.

145
00:12:10,210 --> 00:12:11,720
Và trường bình luận,

146
00:12:11,720 --> 00:12:12,875
như bạn có thể thấy ở đây,

147
00:12:12,875 --> 00:12:15,150
là một mảng trống và hun khói.

148
00:12:15,150 --> 00:12:22,555
Trong bước thứ ba, chúng tôi đẩy bình luận vào món ăn của chúng tôi ở đây;

149
00:12:22,555 --> 00:12:25,560
và sau đó, bình luận đặc biệt này mà

150
00:12:25,560 --> 00:12:28,880
chúng tôi thêm đã được thêm vào mảng ý kiến này.

151
00:12:28,880 --> 00:12:32,475
Vì vậy, bạn có thể thấy nhận xét đó được đính kèm ở đây,

152
00:12:32,475 --> 00:12:39,440
và đây là món ăn được cập nhật mà bây giờ đã được in lên màn hình ở đây.

153
00:12:39,440 --> 00:12:45,270
Vì vậy, bạn có thể thấy rằng chúng tôi đã thực hiện một số bước khác với món ăn của chúng tôi.

154
00:12:45,270 --> 00:12:46,840
Đầu tiên chúng tôi tạo ra món ăn,

155
00:12:46,840 --> 00:12:48,460
sau đó chúng tôi cập nhật món ăn,

156
00:12:48,460 --> 00:12:51,340
sau đó chúng tôi chèn một bình luận vào món ăn,

157
00:12:51,340 --> 00:12:55,745
đó là một tài liệu phụ bên trong tài liệu món ăn;

158
00:12:55,745 --> 00:12:59,035
và sau đó, chúng tôi in ra kết quả cho bạn.

159
00:12:59,035 --> 00:13:02,390
Với điều này, chúng tôi hoàn thành bài tập này.

160
00:13:02,390 --> 00:13:06,500
Trong bài tập này, chúng ta đã thấy làm thế nào chúng ta có thể,

161
00:13:06,500 --> 00:13:10,930
đầu tiên, tạo ra một món ăn bằng cách sử dụng các món ăn tạo ra,

162
00:13:10,930 --> 00:13:14,520
sau đó chúng ta thấy việc sử dụng các tài liệu phụ: ở đó,

163
00:13:14,520 --> 00:13:18,060
chúng ta định nghĩa một lược đồ trong

164
00:13:18,060 --> 00:13:21,720
tập tin dishes.js và sau đó sử dụng lược đồ bình luận mà chúng tôi xác định và

165
00:13:21,720 --> 00:13:29,130
sau đó xác định các lĩnh vực trong lược đồ món ăn như một mảng của các loại CommentSchema.

166
00:13:29,130 --> 00:13:32,810
Và sau đó, trong tệp index.js,

167
00:13:32,810 --> 00:13:35,445
chúng tôi đã có thể tạo ra một món ăn,

168
00:13:35,445 --> 00:13:38,210
cập nhật món ăn và cũng đẩy

169
00:13:38,210 --> 00:13:44,140
một tài liệu nhận xét vào món ăn và sau đó lưu các thay đổi ở đây.

170
00:13:44,140 --> 00:13:46,480
Với điều này, chúng tôi hoàn thành bài tập này.

171
00:13:46,480 --> 00:13:54,170
Đây là thời điểm tốt để bạn thực hiện một Git Kermit với thông điệp, “Mongoose phần ba.”