1
00:00:03,710 --> 00:00:10,380
Bây giờ chúng tôi đã có một cái nhìn tổng quan nhanh chóng về Mongoose ODMO và

2
00:00:10,380 --> 00:00:16,710
làm thế nào Mongoose mang lược đồ để cấu trúc các tài liệu mà chúng tôi lưu trữ trong MongoDB

3
00:00:16,710 --> 00:00:19,830
của chúng tôi, chúng ta hãy xem cách chúng tôi sử dụng

4
00:00:19,830 --> 00:00:27,000
mô-đun nút Mongoose và sau đó kết hợp nó vào ứng dụng nút của chúng tôi.

5
00:00:27,000 --> 00:00:31,065
Sau đó sử dụng Mongoose để giao tiếp với

6
00:00:31,065 --> 00:00:35,760
máy chủ MongoDB của chúng tôi và sau đó lưu trữ và truy xuất

7
00:00:35,760 --> 00:00:41,355
tài liệu với thông tin cấu trúc trong các tài liệu.

8
00:00:41,355 --> 00:00:44,830
Để bắt đầu bài tập này,

9
00:00:44,830 --> 00:00:48,080
hãy đi đến một vị trí thuận tiện trên máy tính của bạn.

10
00:00:48,080 --> 00:00:52,760
Vì vậy, ở đây tôi đang ở trong thư mục Node JS nơi tôi đã được lưu trữ

11
00:00:52,760 --> 00:00:57,020
tất cả các ví dụ từ khóa học này và sau đó tôi sẽ

12
00:00:57,020 --> 00:01:02,210
tạo ra một thư mục mới có tên là nút Mongoose.

13
00:01:02,210 --> 00:01:10,320
Đây là nơi chúng ta sẽ tạo ra các ứng dụng nút sử dụng Mongoose tiếp theo.

14
00:01:10,320 --> 00:01:12,900
Trong thiết bị đầu cuối hoặc cửa sổ lệnh,

15
00:01:12,900 --> 00:01:19,080
di chuyển đến thư mục nút Mongoose và sau đó khởi tạo một ứng dụng nút ở đó.

16
00:01:19,080 --> 00:01:22,385
Vì vậy, hãy để tôi gõ npm init và sau đó

17
00:01:22,385 --> 00:01:26,359
khởi tạo các ứng dụng nút và sau đó tôi sẽ đặt tên cho ứng dụng

18
00:01:26,359 --> 00:01:34,174
như Node-Mongoose và điểm nhập cảnh là lịch sử git index.js,

19
00:01:34,174 --> 00:01:42,590
từ khóa, tác giả và giấy phép và chúng tôi sẽ nói okay.

20
00:01:42,590 --> 00:01:49,574
Sau khi tập tin package.json nút của bạn được tạo ra,

21
00:01:49,574 --> 00:01:54,500
mở dự án trong trình soạn thảo văn bản mà bạn chọn.

22
00:01:54,500 --> 00:02:02,809
Vì vậy, ở đây tôi có dự án của tôi mở trong Visual Studio.

23
00:02:02,809 --> 00:02:05,915
Hãy để tôi đi vào tập tin package.json và sau đó thêm vào

24
00:02:05,915 --> 00:02:14,750
kịch bản khởi động và sau đó chúng ta sẽ

25
00:02:14,750 --> 00:02:24,160
nói chỉ mục nút bắt đầu như bình thường bất cứ khi nào chúng ta bắt đầu với một ứng dụng nút mới.

26
00:02:24,160 --> 00:02:29,945
Sau đó, đi đến thiết bị đầu cuối hoặc cửa sổ lệnh, hãy cài đặt Mongoose.

27
00:02:29,945 --> 00:02:37,290
Vì vậy, tại dấu nhắc nhập npm cài đặt Mongoose, lưu.

28
00:02:39,470 --> 00:02:45,570
Mà tại thời điểm này là Mongoose 5.1.7.

29
00:02:45,570 --> 00:02:49,760
Vì vậy, đây là những phiên bản mà tôi sẽ sử dụng trong khóa học này.

30
00:02:49,760 --> 00:02:54,920
Sau đó, đi đến ứng dụng của tôi trong trình soạn thảo.

31
00:02:54,920 --> 00:03:01,430
Hãy để tôi tạo một thư mục phụ trong dự án được gọi là Models.

32
00:03:01,430 --> 00:03:07,320
Vì vậy, đây là nơi tôi sẽ được lưu trữ tất cả các mô hình cho ứng dụng của tôi.

33
00:03:07,340 --> 00:03:10,230
Trong thư mục mô hình,

34
00:03:10,230 --> 00:03:15,170
hãy để tôi tạo một tập tin mới có tên là dishes.js.

35
00:03:15,170 --> 00:03:19,535
Vì vậy, đây là nơi tôi sẽ tạo ra lược đồ và mô hình

36
00:03:19,535 --> 00:03:24,680
cho tài liệu món ăn của tôi mà tôi sẽ lưu trữ,

37
00:03:24,680 --> 00:03:29,770
bộ sưu tập các món ăn mà lưu trữ các tài liệu cho mỗi món ăn.

38
00:03:29,770 --> 00:03:36,730
Vì vậy, ngay đây, để tôi nhập khẩu Mongoose đầu tiên.

39
00:03:39,320 --> 00:03:47,880
Vì vậy, chúng tôi sẽ yêu cầu Mongoose trong tập tin này và sau đó nói lược đồ

40
00:03:47,880 --> 00:03:57,940
const là lược đồ Mongoose.

41
00:03:59,420 --> 00:04:03,510
Sau đó, chúng tôi sẽ tạo ra lược đồ ở đây.

42
00:04:03,510 --> 00:04:13,845
Vì vậy, chúng ta sẽ nói const DishSchema mới.

43
00:04:13,845 --> 00:04:19,590
Vì vậy, đây là nơi tôi xác định lược đồ cho món ăn của tôi.

44
00:04:20,830 --> 00:04:27,270
Bên trong lược đồ này, hãy để tôi xác định các giá trị khác nhau.

45
00:04:27,270 --> 00:04:29,830
Vì vậy, tôi sẽ nói tên,

46
00:04:29,890 --> 00:04:34,405
đó là loại String.

47
00:04:34,405 --> 00:04:41,480
Vì vậy, đây là loại Schema và sau đó điều này tôi sẽ khai báo theo yêu cầu.

48
00:04:41,480 --> 00:04:43,460
Vì vậy, tôi sẽ nói thật.

49
00:04:43,460 --> 00:04:52,790
Vì vậy, mỗi tài liệu sẽ có tên như là một trường bắt buộc ở đó và sau đó tôi

50
00:04:52,790 --> 00:04:57,185
cũng sẽ tuyên bố điều này như là ý nghĩa duy nhất rằng

51
00:04:57,185 --> 00:05:02,545
không có hai tài liệu nên có cùng một trường tên trong đó.

52
00:05:02,545 --> 00:05:08,230
Vì vậy, đó là trường đầu tiên trong tài liệu của tôi.

53
00:05:10,190 --> 00:05:19,440
Sau đó, chúng tôi cũng sẽ bao gồm một lĩnh vực khác được gọi là, mô tả.

54
00:05:19,440 --> 00:05:29,205
Mô tả là chuỗi loại và bắt buộc đúng.

55
00:05:29,205 --> 00:05:35,165
Ngoài ra, chúng ta có thể có Mongoose tự động chèn

56
00:05:35,165 --> 00:05:41,639
dấu thời gian vào mô hình của chúng tôi.

57
00:05:41,639 --> 00:05:50,340
Vì vậy, ngay tại đó chúng ta chỉ có thể thiết lập các tem thời gian cờ: true.

58
00:05:50,340 --> 00:05:55,810
Vì vậy, điều này sẽ tự động thêm tạo tại và cập nhật tại,

59
00:05:55,810 --> 00:06:01,340
hai dấu thời gian vào mỗi tài liệu được lưu trữ

60
00:06:01,340 --> 00:06:07,235
trong ứng dụng của chúng tôi và nó sẽ tự động cập nhật các giá trị này.

61
00:06:07,235 --> 00:06:11,330
Bất cứ khi nào chúng tôi cập nhật tài liệu và tạo tại sẽ được tự động

62
00:06:11,330 --> 00:06:15,390
khởi tạo khi tài liệu là người tạo lần đầu tiên của thời gian này.

63
00:06:15,390 --> 00:06:22,680
Sau đó, chúng ta sẽ nói var Món ăn.

64
00:06:22,680 --> 00:06:24,549
Vì vậy, với lược đồ,

65
00:06:24,549 --> 00:06:29,605
bây giờ chúng ta sẽ xây dựng mô hình từ lược đồ này.

66
00:06:29,605 --> 00:06:35,215
Vì vậy, chúng tôi sẽ nói Mongoose mô hình và món ăn,

67
00:06:35,215 --> 00:06:43,570
và điều này sẽ được sử dụng lược đồ món ăn mà chúng tôi vừa tuyên bố trước đó.

68
00:06:43,570 --> 00:06:48,590
Sau đó, chúng tôi sẽ xuất

69
00:06:48,590 --> 00:06:55,725
mô hình này từ tập tin này ở đây.

70
00:06:55,725 --> 00:06:58,410
Vì vậy, chúng ta sẽ nói các món ăn xuất khẩu mô-đun.

71
00:06:58,410 --> 00:07:00,545
Vì vậy, bây giờ chúng tôi đã xây dựng

72
00:07:00,545 --> 00:07:05,780
lược đồ Mongoose và mô hình tương ứng và mô hình bây giờ được xuất khẩu từ đây.

73
00:07:05,780 --> 00:07:10,580
Vì vậy, điều này có thể được nhập khẩu trong ứng dụng của chúng tôi và được sử dụng.

74
00:07:10,580 --> 00:07:13,345
Vì vậy, trong thư mục dự án của chúng tôi,

75
00:07:13,345 --> 00:07:20,415
hãy để tôi tạo một tập tin mới có tên index.js.

76
00:07:20,415 --> 00:07:23,265
Trong tập tin index.js,

77
00:07:23,265 --> 00:07:31,450
trước tiên hãy để tôi yêu cầu Mongoose,

78
00:07:31,820 --> 00:07:34,900
và sau đó chúng ta có thể nói món ăn

79
00:07:34,900 --> 00:07:44,970
const yêu cầu các món ăn mô hình.

80
00:07:44,970 --> 00:07:49,210
Bởi vì chúng tôi đã tạo ra mô hình món ăn trong

81
00:07:49,210 --> 00:07:55,740
các mô hình món ăn tập tin ở đó và sau đó chúng tôi đang yêu cầu nó ở đây.

82
00:07:55,740 --> 00:08:02,975
Bây giờ, để thiết lập kết nối với máy chủ Mongo,

83
00:08:02,975 --> 00:08:09,330
chúng ta sẽ nói const URL mongodb.

84
00:08:09,840 --> 00:08:17,110
Localhost 27017, nhầm lẫn.

85
00:08:17,110 --> 00:08:25,760
Vì vậy, cơ sở dữ liệu này là một trong những mà chúng tôi sẽ kết nối từ ứng dụng của chúng tôi và

86
00:08:25,760 --> 00:08:35,125
sau đó chúng tôi có thể thiết lập kết nối bằng cách nói const kết nối Mongoose.

87
00:08:35,125 --> 00:08:38,195
Mongoose hỗ trợ phương thức kết nối này

88
00:08:38,195 --> 00:08:41,695
, lấy URL làm tham số đầu tiên.

89
00:08:41,695 --> 00:08:44,250
Vì vậy, một khi chúng tôi đã thiết lập điều này,

90
00:08:44,250 --> 00:08:49,470
sau đó chúng tôi chỉ đơn giản là nói kết nối sau đó.

91
00:08:49,470 --> 00:08:52,280
Lưu ý rằng kể từ khi chúng ta đã sử dụng lời hứa,

92
00:08:52,280 --> 00:08:57,680
chúng ta chỉ có thể nói kết nối sau đó và sau đó điều này sẽ mất

93
00:08:57,680 --> 00:09:03,774
một chức năng như tham số

94
00:09:03,774 --> 00:09:10,175
và bên trong đây bây giờ chúng ta có thể kết nối với cơ sở dữ liệu.

95
00:09:10,175 --> 00:09:13,550
Vì vậy, bây giờ một khi kết nối này được thành lập,

96
00:09:13,550 --> 00:09:17,800
hãy để tôi làm một bản ghi giao diện điều khiển

97
00:09:17,800 --> 00:09:26,060
nói kết nối một cách chính xác với máy chủ,

98
00:09:26,100 --> 00:09:36,355
và ở đây tôi có thể tạo ra một D

99
00:09:36,355 --> 00:09:45,560
ish mới bằng cách nói var Dish và sau đó Dish và bên trong đây tôi có thể chỉ định một tài liệu để tôi tạo ra

100
00:09:45,560 --> 00:09:50,170
một Dish mới của loại này và sau đó như vậy trong đây Tôi sẽ

101
00:09:50,170 --> 00:09:55,510
chỉ định hai trường được yêu cầu.

102
00:09:55,510 --> 00:09:57,920
Vì vậy, tôi sẽ nói tên,

103
00:10:07,950 --> 00:10:16,390
mô tả và vì vậy đây là cách bạn sẽ tạo ra một món ăn mới và sau đó một khi chúng tôi tạo ra

104
00:10:16,390 --> 00:10:24,910
một món ăn mới từ mô hình chúng tôi sẽ chỉ đơn giản là nói món ăn mới tiết kiệm.

105
00:10:24,910 --> 00:10:29,760
Phương pháp lưu sẽ gây ra giá trị Dish này được

106
00:10:29,760 --> 00:10:35,060
lưu và sau đó như bạn mong đợi sẽ trả lại một lời hứa và

107
00:10:35,060 --> 00:10:45,165
sau đó ở đây chúng tôi sẽ nhận được giá trị Dish như cuộc gọi trở lại trong đó và sau đó, tôi

108
00:10:45,165 --> 00:10:54,940
chỉ có thể đăng nhập giá trị Dish ở đây và sau đó chúng tôi sẽ nói Dish

109
00:10:54,940 --> 00:11:00,915
tìm thấy và vì vậy chúng tôi sẽ tìm thấy

110
00:11:00,915 --> 00:11:07,090
tất cả các Món ăn và sau đó nói exec.

111
00:11:07,090 --> 00:11:10,255
Các exec sẽ đảm bảo rằng điều này được

112
00:11:10,255 --> 00:11:15,250
thực hiện và rằng nó sẽ trả lại một lời hứa và do đó lời hứa sẽ

113
00:11:15,250 --> 00:11:19,660
được trả lại để sau đó nó có thể

114
00:11:19,660 --> 00:11:27,040
chuỗi các phương pháp để những người còn lại.

115
00:11:27,040 --> 00:11:33,975
Vì vậy, bạn thấy làm thế nào tôi đang sử dụng lời hứa và sau đó tôi gọi phương pháp trước đó để điều này

116
00:11:33,975 --> 00:11:41,395
tìm thấy tất cả các món ăn trong cơ sở dữ liệu của tôi,

117
00:11:41,395 --> 00:11:45,905
trong bộ sưu tập Dishes và sau đó làm cho nó có sẵn cho tôi.

118
00:11:45,905 --> 00:11:55,550
Vì vậy, khi tôi nhận được các món ăn sau đó tôi chỉ có thể giao diện điều khiển đăng nhập các món ăn chỉ để xem những gì được

119
00:11:55,550 --> 00:11:58,790
trả lại và điều này rõ ràng ở giai đoạn

120
00:11:58,790 --> 00:12:02,710
này nên trả lại một món ăn duy nhất mà tôi đã chèn vào

121
00:12:02,710 --> 00:12:10,940
bộ sưu tập món ăn của tôi và sau đó chúng tôi sẽ nói

122
00:12:11,010 --> 00:12:15,550
trở lại món ăn loại bỏ với

123
00:12:15,550 --> 00:12:19,930
một đối tượng JavaScript trống mà sẽ loại bỏ tất cả các món ăn từ

124
00:12:19,930 --> 00:12:24,384
cơ sở dữ liệu và trả về

125
00:12:24,384 --> 00:12:31,790
kết nối mongoose đóng mà đóng kết nối với cơ sở dữ liệu.

126
00:12:35,040 --> 00:12:38,830
Và bắt gặp bất kỳ lỗi nào tại thời điểm này.

127
00:12:38,830 --> 00:12:49,430
Vì vậy, chúng tôi sẽ sử dụng bắt và sau đó giao diện điều khiển đăng nhập.

128
00:12:50,600 --> 00:12:57,820
Đó là nó. Vì vậy, những gì chúng tôi đang làm ở đây là chúng tôi đang tạo ra món ăn mới này và sau đó chúng tôi đang

129
00:12:57,820 --> 00:13:04,255
tiết kiệm món ăn sau đó chúng tôi đang tìm thấy tất cả các món ăn từ bộ sưu tập.

130
00:13:04,255 --> 00:13:06,740
Đó là nó. Chúng tôi đang sử dụng lời hứa ở đây,

131
00:13:06,740 --> 00:13:10,435
nên chúng tôi đã xích tất cả các hang trong này. Đó là nó.

132
00:13:10,435 --> 00:13:15,595
Hãy lưu các thay đổi và sau đó xem ứng dụng này thực hiện.

133
00:13:15,595 --> 00:13:17,455
Đi vào thiết bị đầu cuối,

134
00:13:17,455 --> 00:13:21,505
tại dấu nhắc loại npm bắt đầu và bạn sẽ

135
00:13:21,505 --> 00:13:25,735
thấy rằng ứng dụng nút của tôi chạy và sau đó nó cho thấy,

136
00:13:25,735 --> 00:13:33,110
đầu tiên, rằng nó đã tạo ra Dish đặc biệt này.

137
00:13:33,110 --> 00:13:37,285
Lưu ý đặc biệt, rằng hai lĩnh vực này,

138
00:13:37,285 --> 00:13:39,365
cập nhật tại và tạo tại,

139
00:13:39,365 --> 00:13:43,465
hai dấu thời gian này đã tự động được thêm vào D

140
00:13:43,465 --> 00:13:47,790
ish ở đây và do đó bạn có thể thấy rằng tạo tại và

141
00:13:47,790 --> 00:13:51,630
cập nhật tại timestamps là chính xác giống nhau tại thời điểm này và

142
00:13:51,630 --> 00:13:57,235
sau đó ID cũng được tự động thêm trong.

143
00:13:57,235 --> 00:14:03,210
Trong bước tiếp theo, chúng tôi đang in ra tất cả các món ăn đã được lấy ra và vì vậy bạn

144
00:14:03,210 --> 00:14:10,340
có thể thấy rằng một món ăn duy nhất là trong bộ sưu tập, bộ

145
00:14:10,340 --> 00:14:15,935
sưu tập món ăn, và đó là những gì được in ra trên màn hình ở đây.

146
00:14:15,935 --> 00:14:25,660
Bây giờ chúng ta hãy khởi tạo kho lưu trữ Git và sau đó chúng ta hãy thiết lập các tập tin gitignore got

147
00:14:25,660 --> 00:14:35,125
để đi đến trình soạn thảo sau đó chúng ta tạo ra tập tin.gitignore và sau đó thêm

148
00:14:35,125 --> 00:14:40,240
các module nút vào tập tin gitignore và lưu các thay đổi và

149
00:14:40,240 --> 00:14:45,325
sau đó quay trở lại dấu nhắc cho phép tôi

150
00:14:45,325 --> 00:14:48,550
gõ trạng thái git và chúng ta thấy rằng

151
00:14:48,550 --> 00:14:51,955
chúng tôi có những tập tin đã không được kiểm tra trong vì vậy chúng tôi sẽ nói

152
00:14:51,955 --> 00:14:56,545
git add và sau đó git

153
00:14:56,545 --> 00:15:04,535
cam kết thông điệp Mongoose Phần One.

154
00:15:04,535 --> 00:15:08,110
Với điều này, chúng tôi hoàn thành bài tập này.

155
00:15:08,110 --> 00:15:14,300
Trong bài tập này chúng ta đã thấy cách dễ dàng để thiết lập một ứng dụng nút với

156
00:15:14,300 --> 00:15:21,335
mongoose và kết nối với máy chủ MongoDB của chúng tôi và sau đó tương tác với nó.

157
00:15:21,335 --> 00:15:24,985
Bây giờ kể từ khi mongoose xây dựng trên máy chủ

158
00:15:24,985 --> 00:15:28,980
MongoDB, Mongoose có thể truy cập tất cả các phương pháp khác nhau

159
00:15:28,980 --> 00:15:32,690
được hỗ trợ bởi trình điều khiển MongoDB cũng.