1
00:00:03,950 --> 00:00:09,370
Trong bài tập này, chúng ta sẽ tiếp tục với bài tập trước đó, nơi chúng ta

2
00:00:09,370 --> 00:00:14,650
đã phát triển sự tương tác giữa ứng dụng nút và máy chủ MongoDB.

3
00:00:14,650 --> 00:00:18,120
Trong bài tập này, tôi sẽ đóng gói một vài trong số các

4
00:00:18,120 --> 00:00:21,750
hoạt động cơ sở dữ liệu vào một mô-đun nút của riêng mình,

5
00:00:21,750 --> 00:00:23,540
một mô-đun nút dựa trên tập tin,

6
00:00:23,540 --> 00:00:29,345
và sau đó sử dụng nó trong ứng dụng nút của tôi để tương tác với máy chủ.

7
00:00:29,345 --> 00:00:31,940
Đồng thời, chúng tôi sẽ thực hiện một số thao tác trên

8
00:00:31,940 --> 00:00:35,630
máy chủ để chứng minh rằng chúng tôi sẽ có thể

9
00:00:35,630 --> 00:00:43,040
tương tác với máy chủ bằng cách sử dụng ứng dụng nút của chúng tôi và trình điều khiển nút MongoDB.

10
00:00:43,040 --> 00:00:47,605
Để bắt đầu, chúng ta hãy đi đến dự án của chúng tôi,

11
00:00:47,605 --> 00:00:53,975
và sau đó tạo một tập tin mới có tên operations.js.

12
00:00:53,975 --> 00:00:57,720
Tập tin này sẽ đóng gói tất cả các hoạt động cơ sở dữ liệu,

13
00:00:57,720 --> 00:01:00,705
bốn hoạt động mà tôi sẽ thực hiện chèn,

14
00:01:00,705 --> 00:01:05,855
tìm, loại bỏ và cập nhật một tài liệu trong cơ sở dữ liệu của tôi.

15
00:01:05,855 --> 00:01:09,980
Bây giờ, điều này sẽ được tổ chức như một mô-đun nút dựa trên tập tin,

16
00:01:09,980 --> 00:01:15,070
sau đó tôi sẽ sử dụng nó trong ứng dụng nút của tôi để truy cập vào máy chủ.

17
00:01:15,070 --> 00:01:16,330
Vì vậy, để bắt đầu, hãy để

18
00:01:16,330 --> 00:01:25,780
tôi đầu tiên yêu cầu assert,

19
00:01:25,780 --> 00:01:27,565
trong mô-đun nút này,

20
00:01:27,565 --> 00:01:30,225
và kể từ khi điều này xảy ra là một mô-đun nút,

21
00:01:30,225 --> 00:01:35,055
chúng tôi sẽ xuất khẩu một số phương pháp từ mô-đun nút.

22
00:01:35,055 --> 00:01:41,705
Phương pháp đầu tiên sẽ được chèn tài liệu rõ ràng như bạn mong đợi,

23
00:01:41,705 --> 00:01:44,520
và điều này sẽ mất bốn tham số DB,

24
00:01:44,520 --> 00:01:49,555
MongoDB, kết nối cơ sở dữ liệu trong ứng dụng nút của tôi,

25
00:01:49,555 --> 00:01:54,240
mà tôi sẽ có được trong ứng dụng nút.

26
00:01:54,240 --> 00:01:57,785
Sau đó, thứ hai là tài liệu mà tôi muốn chèn.

27
00:01:57,785 --> 00:02:02,800
Tham số thứ ba là bộ sưu tập mà tôi muốn chèn tài liệu.

28
00:02:02,800 --> 00:02:05,675
Một trong những cuối cùng là một hàm callback,

29
00:02:05,675 --> 00:02:10,425
mà sẽ được gọi trở lại một khi thao tác đó được hoàn thành.

30
00:02:10,425 --> 00:02:14,800
Sau đó, chúng ta hãy đóng hàm ở đây,

31
00:02:14,800 --> 00:02:20,100
và điều này về cơ bản đóng gói phương pháp tài liệu chèn ở đây.

32
00:02:20,100 --> 00:02:27,415
Vì vậy, đây là một chức năng được xuất khẩu bởi mô-đun nút này ở đây.

33
00:02:27,415 --> 00:02:34,250
Bây giờ, tôi cũng sẽ kết hợp thêm một vài phương pháp ở đây.

34
00:02:34,250 --> 00:02:42,870
Cái thứ hai sẽ được tìm thấy tài liệu.

35
00:02:42,870 --> 00:02:46,025
Không chỉ một mà là một vài tài liệu.

36
00:02:46,025 --> 00:02:54,390
Điều này tôi sẽ tìm kiếm bộ sưu tập và tìm thấy tất cả các tài liệu trong bộ sưu tập.

37
00:02:54,390 --> 00:02:58,130
Vì vậy, đó là lý do tại sao tôi chỉ lấy cơ sở dữ liệu

38
00:02:58,130 --> 00:03:02,090
và bộ sưu tập như hai tham số cùng với callback.

39
00:03:02,090 --> 00:03:11,550
Chức năng thứ ba mà tôi sẽ thực hiện một xuất khẩu từ đây là removedocument.

40
00:03:12,290 --> 00:03:15,590
Điều này hỗ trợ thao tác xóa,

41
00:03:15,590 --> 00:03:19,855
và do đó tên của tài liệu sẽ lấy cơ sở dữ liệu, tài liệu,

42
00:03:19,855 --> 00:03:23,775
bộ sưu tập và gọi lại là bốn tham số,

43
00:03:23,775 --> 00:03:30,595
và chúng tôi sẽ gọi gọi gọi lại khi thao tác hoàn tất.

44
00:03:30,595 --> 00:03:34,445
Điều cuối cùng tất nhiên là cập nhật tài liệu.

45
00:03:34,445 --> 00:03:38,120
Bây giờ tất nhiên, bạn không nhất thiết phải làm theo cách này.

46
00:03:38,120 --> 00:03:42,830
Tôi chỉ cảm thấy rằng đây sẽ là một cách khác để minh họa cách bạn có thể

47
00:03:42,830 --> 00:03:49,110
đóng gói các chức năng đó vào mô-đun nút riêng của nó.

48
00:03:49,110 --> 00:03:55,395
Đây chỉ là tổ chức lại mã theo cách dễ sử dụng hơn.

49
00:03:55,395 --> 00:03:57,205
Vì vậy, đối với xuất khẩu,

50
00:03:57,205 --> 00:04:00,070
đối với tài liệu cập nhật nó có DB,

51
00:04:00,070 --> 00:04:03,750
một số cách để xác định tài liệu như là một tham số thứ hai.

52
00:04:03,750 --> 00:04:06,205
Tham số thứ ba là bản cập nhật,

53
00:04:06,205 --> 00:04:08,750
và tham số thứ tư là bộ sưu tập trong đó

54
00:04:08,750 --> 00:04:11,505
tài liệu này tồn tại, và gọi lại.

55
00:04:11,505 --> 00:04:18,160
Vì vậy, bốn chức năng được xuất khẩu bởi các tập tin operations.js.

56
00:04:18,160 --> 00:04:20,380
Bây giờ, trong các chức năng này,

57
00:04:20,380 --> 00:04:21,735
chúng ta hãy thực hiện từng cái một.

58
00:04:21,735 --> 00:04:23,420
Trong tài liệu chèn,

59
00:04:23,420 --> 00:04:27,680
điều đầu tiên mà tôi sẽ làm là nói

60
00:04:27,680 --> 00:04:36,000
bộ sưu tập const và nó sẽ nói bộ sưu tập DB,

61
00:04:38,930 --> 00:04:44,710
và tham số là bộ sưu tập.

62
00:04:45,350 --> 00:04:50,190
Vì vậy, chúng tôi sẽ tìm kiếm bộ sưu tập ở đó.

63
00:04:50,190 --> 00:04:54,640
Bây giờ, điều này phải được thực hiện trong tất cả bốn phương pháp.

64
00:04:54,640 --> 00:04:59,990
Vì vậy, tôi sẽ đi và dán mã này vào tất cả bốn phương pháp ở đây,

65
00:05:01,140 --> 00:05:05,390
bởi vì đó là một chức năng mà tôi cần trong tất cả chúng.

66
00:05:05,390 --> 00:05:07,820
Vì vậy, một khi tôi có được giữ của bộ sưu tập,

67
00:05:07,820 --> 00:05:11,680
sau đó như bạn nhớ lại từ bài tập trước,

68
00:05:11,680 --> 00:05:13,895
tôi có thể thực hiện các hoạt động trên bộ sưu tập.

69
00:05:13,895 --> 00:05:19,160
Vì vậy, tôi sẽ nói bộ sưu tập, chèn,

70
00:05:21,300 --> 00:05:27,610
và điều này mất như là tham số đầu tiên tài liệu được chèn vào,

71
00:05:27,610 --> 00:05:35,695
và tham số thứ hai là gọi lại với lỗi và kết quả đó.

72
00:05:35,695 --> 00:05:40,990
Vì vậy, bây giờ khi tài liệu này

73
00:05:40,990 --> 00:05:46,780
được chèn vào bằng cách gọi phương thức chèn vào bộ sưu tập cơ sở dữ liệu,

74
00:05:46,780 --> 00:05:49,180
phương thức chèn cho phép tôi nhắc nhở bạn,

75
00:05:49,180 --> 00:05:52,090
được hỗ trợ bởi trình điều khiển MongoDB.

76
00:05:52,090 --> 00:05:53,980
Vì vậy, đó là phương pháp mà chúng tôi đang sử dụng ở đây,

77
00:05:53,980 --> 00:05:56,420
hoặc đó là chức năng mà chúng tôi đang sử dụng ở đây.

78
00:05:56,420 --> 00:06:05,060
Bây giờ, điều đầu tiên mà tôi sẽ kiểm tra cho điều này, assertequal err, null.

79
00:06:05,060 --> 00:06:09,185
Vì vậy, tôi muốn chắc chắn rằng tôi không có một lỗi.

80
00:06:09,185 --> 00:06:11,225
Vì vậy, tôi muốn đảm bảo rằng lỗi là null.

81
00:06:11,225 --> 00:06:12,470
Nếu nó không phải là null,

82
00:06:12,470 --> 00:06:15,930
sau đó điều này sẽ in ra thông tin và sau đó thoát khỏi ứng dụng.

83
00:06:15,930 --> 00:06:19,760
Tại thời điểm này, tôi cảm thấy rằng điều này là okay để xử lý nó sau này,

84
00:06:19,760 --> 00:06:24,680
chúng ta sẽ thấy làm thế nào chúng ta có thể có một cách toàn cầu để xử lý tất cả các lỗi khi chúng ta

85
00:06:24,680 --> 00:06:34,390
thực hiện trong bài học tiếp theo một cách khác để truy cập vào cơ sở dữ liệu MongoDB.

86
00:06:34,390 --> 00:06:36,640
Bây giờ, sau khi tôi làm điều này,

87
00:06:36,640 --> 00:06:38,050
tôi sẽ thực hiện,

88
00:06:38,050 --> 00:06:40,075
tôi sẽ chỉ cần đăng nhập thông tin này.

89
00:06:40,075 --> 00:06:48,570
Vì vậy, tôi sẽ nói, giao diện điều khiển đăng nhập và chèn nó.

90
00:06:48,570 --> 00:06:55,375
Vì vậy, thông tin này sẽ được in ra màn hình ở đây, chèn vào.

91
00:06:55,375 --> 00:07:00,440
Bây giờ một lần nữa, hãy nhớ dấu chấm phẩy và tất cả những gì

92
00:07:00,440 --> 00:07:05,120
quan trọng đừng quên chúng khi bạn đang gõ mã của bạn.

93
00:07:05,120 --> 00:07:07,930
Vì vậy, tôi sẽ nói kết quả chèn.

94
00:07:07,930 --> 00:07:12,165
Đối tượng kết quả này được trả về,

95
00:07:12,165 --> 00:07:15,785
sẽ có trên đó một thuộc tính được gọi là thuộc tính kết quả,

96
00:07:15,785 --> 00:07:20,270
và thuộc tính này sẽ chứa một giá trị.

97
00:07:20,270 --> 00:07:23,600
Thuộc tính kết quả này cũng là một đối tượng JavaScript,

98
00:07:23,600 --> 00:07:31,395
và điều này sẽ chứa một thuộc tính n cho chúng ta biết có bao nhiêu tài liệu đã được chèn vào.

99
00:07:31,395 --> 00:07:36,875
Vì vậy, đó là thông tin mà tôi sẽ in ra ở đây,

100
00:07:36,875 --> 00:07:39,540
và sau đó chúng tôi sẽ đi đến dòng tiếp theo và

101
00:07:39,540 --> 00:07:50,750
nói “tài liệu vào bộ sưu tập”.

102
00:07:53,070 --> 00:08:02,040
Bây giờ, đây chỉ là một cách để thông báo cho người dùng rằng hoạt động này đã diễn ra một cách chính xác,

103
00:08:02,040 --> 00:08:10,135
và sau đó họ sẽ vượt qua kết quả đó trở lại chức năng gọi của chúng tôi.

104
00:08:10,135 --> 00:08:15,330
Vì vậy, chúng tôi sẽ gọi callback và sau đó kết quả sẽ là tham số để callback.

105
00:08:15,330 --> 00:08:21,595
Vì vậy, khi chúng tôi thực hiện việc sử dụng chức năng này trong tập tin index.js của

106
00:08:21,595 --> 00:08:23,930
chúng tôi, chúng tôi sẽ cung cấp các callback có mà sẽ

107
00:08:23,930 --> 00:08:26,880
nhận được kết quả như là tham số đến.

108
00:08:26,880 --> 00:08:30,670
Vì vậy, đây là cho “InsertDocument”.

109
00:08:30,670 --> 00:08:33,010
Bây giờ, với “FindDocument

110
00:08:33,010 --> 00:08:36,750
”, những gì tôi sẽ làm là nói,

111
00:08:37,010 --> 00:08:41,640
“coll.find” và tôi sẽ tìm tất cả các tài liệu.

112
00:08:41,640 --> 00:08:44,810
Vì vậy, đó là lý do tại sao tôi sẽ cung cấp cho một đối tượng JavaScript trống ở đây,

113
00:08:44,810 --> 00:08:51,040
mà sẽ phù hợp với tất cả các tài liệu trong bộ sưu tập và sau đó tôi sẽ nói,

114
00:08:51,040 --> 00:09:01,820
“toArray” và điều này sẽ mất như một tham số một chức năng gọi lại,

115
00:09:02,220 --> 00:09:06,505
và bên trong chức năng gọi lại này, tất nhiên,

116
00:09:06,505 --> 00:09:11,710
tôi sẽ khẳng định rằng điều này không phải là null,

117
00:09:11,710 --> 00:09:20,590
và sau đó chúng ta sẽ nói, “callback docs.”

118
00:09:20,590 --> 00:09:27,440
Chúng tôi sẽ chỉ đơn giản là chuyển lại các tài liệu truy xuất trở lại chức năng gọi điện.

119
00:09:28,200 --> 00:09:37,750
Bây giờ, cho “RemoveDocument”, tôi sẽ nói, “bộ sưu tập DeleteOne.”

120
00:09:37,750 --> 00:09:40,270
Vì vậy, tôi sẽ cố gắng tìm tài liệu đầu tiên

121
00:09:40,270 --> 00:09:45,130
phù hợp với những gì chúng tôi đã chỉ định và sau đó xóa nó.

122
00:09:45,130 --> 00:09:47,070
Và sau đó điều này sẽ mất,

123
00:09:47,070 --> 00:09:50,380
một lần nữa, một hàm callback như một tham số thứ hai,

124
00:09:50,380 --> 00:09:52,685
và bên trong hàm callback này,

125
00:09:52,685 --> 00:09:58,160
điều đầu tiên mà tôi kiểm tra là để đảm bảo rằng lỗi không phải là null.

126
00:09:58,160 --> 00:10:01,820
Và sau đó, chúng ta sẽ nói,

127
00:10:02,130 --> 00:10:20,890
“đăng nhập giao diện điều khiển đã xóa tài liệu dấu phẩy.”

128
00:10:20,890 --> 00:10:24,840
Chúng tôi sử dụng dấu phẩy ở đây vì đây là một đối tượng JavaScript vì vậy,

129
00:10:24,840 --> 00:10:26,890
nếu bạn chỉ định giao diện điều khiển đăng nhập như thế này,

130
00:10:26,890 --> 00:10:30,360
tài liệu sẽ được in ra và sau đó chúng tôi sẽ vượt qua

131
00:10:30,360 --> 00:10:36,705
kết quả đó trở lại thông qua chức năng gọi lại.

132
00:10:36,705 --> 00:10:47,550
Và sau đó cuối cùng, cho bản cập nhật chúng tôi sẽ coll.UpdateOne.

133
00:10:47,670 --> 00:10:52,255
Đây là một phương pháp trình điều khiển MongoDB hỗ trợ.

134
00:10:52,255 --> 00:10:56,560
Vì vậy, tôi sẽ nói, “update.one document

135
00:10:56,560 --> 00:11:01,480
”, và tham số thứ hai là nơi chúng ta

136
00:11:01,480 --> 00:11:06,960
sẽ vượt qua trong các trường cần được cập nhật.

137
00:11:06,960 --> 00:11:08,915
Và cách nó được thực hiện,

138
00:11:08,915 --> 00:11:12,810
chúng ta sẽ nói, “đồng đô la đặt đại tràng cập nhật.”

139
00:11:12,810 --> 00:11:16,100
Vì vậy, điều này sẽ có thông tin cập nhật mà

140
00:11:16,100 --> 00:11:19,120
tôi đang gửi và sau đó vượt qua nó vào bản cập nhật.one.

141
00:11:19,120 --> 00:11:21,620
Đầu tiên là tài liệu cần được cập nhật.

142
00:11:21,620 --> 00:11:25,425
Thứ hai là trường nào của tài liệu cần được cập nhật ở đây.

143
00:11:25,425 --> 00:11:28,660
Và tham số thứ ba là null,

144
00:11:28,770 --> 00:11:36,305
và tham số cuối cùng đó là một hàm callback,

145
00:11:36,305 --> 00:11:45,660
mà rõ ràng sẽ cho chúng ta kết quả của hoạt động.

146
00:11:45,660 --> 00:11:51,125
Vì vậy, điều đầu tiên tôi sẽ kiểm tra để đảm bảo rằng lỗi không phải là null.

147
00:11:51,125 --> 00:11:59,535
Sau đó, tôi sẽ làm một “đăng nhập giao diện điều khiển cập nhật tài liệu với.”

148
00:11:59,535 --> 00:12:03,195
Bây giờ một lần nữa, các bản ghi giao diện điều khiển là hoàn toàn cho chúng tôi để

149
00:12:03,195 --> 00:12:07,920
đảm bảo rằng mã đang làm những gì nó đang làm.

150
00:12:07,920 --> 00:12:09,690
Nó không giúp ích gì trong bất kỳ cách nào.

151
00:12:09,690 --> 00:12:11,995
Đây chỉ là thông tin riêng của chúng ta.

152
00:12:11,995 --> 00:12:15,070
Trong một máy chủ sản xuất,

153
00:12:15,070 --> 00:12:18,570
bạn sẽ không có bản ghi giao diện điều khiển này, có thể.

154
00:12:18,570 --> 00:12:24,220
Bạn có thể vô hiệu hóa chúng. Vậy, đúng vậy.

155
00:12:24,220 --> 00:12:32,370
Vì vậy, bốn phương pháp được hỗ trợ trong mô-đun nút dựa trên tập tin cụ thể chèn,

156
00:12:32,370 --> 00:12:35,040
tìm, loại bỏ và cập nhật.

157
00:12:35,040 --> 00:12:38,490
Vì vậy, bây giờ mà chúng tôi đã thực hiện mô-đun nút dựa trên tập tin này, chúng

158
00:12:38,490 --> 00:12:41,185
ta hãy đi đến các tập tin index.js,

159
00:12:41,185 --> 00:12:45,985
và sau đó để sử dụng các mô-đun nút dựa trên tập tin,

160
00:12:45,985 --> 00:12:48,010
tôi cần phải yêu cầu điều này ở đây.

161
00:12:48,010 --> 00:12:53,969
Vì vậy, tôi sẽ nói, “const dboper yêu cầu.”

162
00:12:53,969 --> 00:13:00,155
Vì đây là một mô-đun nút dựa trên tệp, bạn có được đường dẫn đầy đủ đến mô-đun nút

163
00:13:00,155 --> 00:13:03,865
, và trong trường hợp này xảy ra. /hoạt động

164
00:13:03,865 --> 00:13:09,760
bởi vì nó nằm trong cùng một thư mục như tập tin index.js của tôi.

165
00:13:09,760 --> 00:13:12,400
Bây giờ, một khi chúng tôi đã làm điều này,

166
00:13:12,400 --> 00:13:19,570
sau đó ngay tại đây, chức năng

167
00:13:19,570 --> 00:13:24,355
này, mã này mà chúng tôi đã làm để truy cập vào cơ sở dữ liệu bây giờ chèn,

168
00:13:24,355 --> 00:13:32,430
chúng tôi sẽ sử dụng dboper mà chúng tôi vừa thực hiện để truy cập vào cơ sở dữ liệu đó.

169
00:13:32,430 --> 00:13:36,280
Vì vậy, chúng ta sẽ nói, “dboper insert document,

170
00:13:36,280 --> 00:13:40,345
" và “insert document” này lấy db làm tham số đầu tiên.

171
00:13:40,345 --> 00:13:45,015
Các db ở đây, là db này mà đi vào khi chúng ta gọi MongoClient kết nối.

172
00:13:45,015 --> 00:13:48,010
Vì vậy, db sẽ được thông qua, do đó,

173
00:13:48,010 --> 00:13:53,805
mô-đun nút hoạt động của tôi biết nơi để truy cập vào cơ sở dữ liệu.

174
00:13:53,805 --> 00:13:59,325
Sau đó, tham số thứ hai là,

175
00:13:59,325 --> 00:14:03,950
vì vậy nếu bạn nhìn vào “chèn tài liệu”, bạn sẽ thấy

176
00:14:03,950 --> 00:14:08,055
rằng tham số thứ hai là tài liệu được chèn vào.

177
00:14:08,055 --> 00:14:10,850
Vì vậy, tôi sẽ nói, “Tên. “

178
00:14:11,640 --> 00:14:21,680
Tôi chỉ cần xây dựng một đối tượng JSON hoặc đối tượng JavaScript ở đây,

179
00:14:21,680 --> 00:14:27,315
mà sẽ tự động được ánh xạ vào đối tượng liền kề khi nó đang được chèn vào.

180
00:14:27,315 --> 00:14:30,135
Và tham số thứ ba, như bạn thấy,

181
00:14:30,135 --> 00:14:32,790
“bộ sưu tập tài liệu db và gọi lại.”

182
00:14:32,790 --> 00:14:36,690
Vì vậy, tham số thứ ba là bộ sưu tập và bộ sưu tập là

183
00:14:36,690 --> 00:14:42,855
bộ sưu tập các món ăn và một trong những cuối cùng là gọi lại.

184
00:14:42,855 --> 00:14:48,605
Cuộc gọi lại một lần nữa khi bạn nhớ lại sẽ nhận được kết quả.

185
00:14:48,605 --> 00:14:52,710
Nếu bạn nhìn lại em bé thực hiện tài liệu chèn,

186
00:14:52,710 --> 00:14:55,245
cuộc gọi lại nhận được kết quả là tham số.

187
00:14:55,245 --> 00:15:00,305
Vì vậy, bên trong callback này, chúng tôi sẽ xử lý giá trị kết quả ở đây.

188
00:15:00,305 --> 00:15:07,000
Vì vậy, khi giá trị kết quả đến trong chúng ta sẽ làm một console.log.

189
00:15:07,390 --> 00:15:12,750
Chúng ta sẽ nói chèn tài liệu

190
00:15:13,240 --> 00:15:20,565
dấu gạch chéo ngược N và chúng ta sẽ nói kết quả OPS.

191
00:15:20,565 --> 00:15:24,760
OPS cho bạn biết số lượng các thao tác chèn đã được thực hiện.

192
00:15:24,760 --> 00:15:28,680
Vì vậy, đây là một đối tượng đó sẽ là trên kết quả

193
00:15:28,680 --> 00:15:31,790
JavaScript đối tượng được thông qua trở lại như là

194
00:15:31,790 --> 00:15:34,650
tham số và vì vậy tôi chỉ sẽ in ra giá trị đó.

195
00:15:34,650 --> 00:15:38,260
Vì vậy, nó sẽ cho chúng ta một số thông tin về những gì đã xảy ra.

196
00:15:38,260 --> 00:15:40,610
Bây giờ một khi điều này được hoàn thành,

197
00:15:40,610 --> 00:15:45,880
bên trong chức năng gọi lại này tôi sẽ gọi các hoạt động cơ sở dữ liệu tiếp theo.

198
00:15:45,880 --> 00:15:50,730
Vì vậy, tôi sẽ nói dboper và sau đó tìm các tài liệu.

199
00:15:50,730 --> 00:16:00,260
Sau đó, tôi sẽ nói dbdishes và tham số thứ ba là tài liệu,

200
00:16:00,260 --> 00:16:03,090
đó là hàm callback.

201
00:16:03,090 --> 00:16:06,100
Khi tôi nhận được các tài liệu tôi sẽ làm một

202
00:16:06,100 --> 00:16:15,170
console.log nói tài liệu tìm thấy,

203
00:16:16,170 --> 00:16:22,140
và chúng tôi sẽ chỉ đơn giản là khóa các tài liệu vào màn hình.

204
00:16:22,140 --> 00:16:25,075
Vì vậy, điều này sẽ in ra các tài liệu được tìm thấy.

205
00:16:25,075 --> 00:16:28,470
Chú ý rằng cuộc gọi này là bên

206
00:16:28,470 --> 00:16:37,480
trong chức năng gọi lại được áp dụng cho các cuộc gọi chức năng trước đó,

207
00:16:37,480 --> 00:16:41,225
vì vậy đó là một cái gì đó mà tôi muốn bạn để ý cụ thể.

208
00:16:41,225 --> 00:16:46,290
Bây giờ, một lần nữa bên trong chức năng này gọi họ cần phải làm điều đó theo cách này bởi vì cho đến khi

209
00:16:46,290 --> 00:16:52,185
gọi lại này được gọi là chúng ta không thể làm các hoạt động tiếp theo.

210
00:16:52,185 --> 00:16:58,855
Vì vậy, trong thao tác tiếp theo tôi sẽ cập nhật tài liệu mà tôi vừa chèn.

211
00:16:58,855 --> 00:17:03,990
Vì vậy, tôi sẽ nói cập nhật tài liệu và tôi sẽ nói cập nhật tài liệu DB,

212
00:17:03,990 --> 00:17:07,880
và sau đó tham số tiếp theo là tài liệu

213
00:17:07,880 --> 00:17:11,800
và tôi không cần phải chỉ định toàn bộ tài liệu tôi chỉ có thể chỉ định một trường và

214
00:17:11,800 --> 00:17:20,740
sau đó sẽ tìm thấy tài liệu phù hợp với trường cụ thể này.

215
00:17:21,960 --> 00:17:27,690
Những gì tôi sẽ làm là tham số tiếp theo là bản cập nhật cần được cung cấp.

216
00:17:27,690 --> 00:17:30,770
Vì vậy, bản cập nhật là lĩnh vực mà tôi muốn cập nhật,

217
00:17:30,770 --> 00:17:35,350
vì vậy tôi sẽ cập nhật

218
00:17:35,350 --> 00:17:42,050
lĩnh vực mô tả bằng cách nói Kiểm tra Cập Nhật,

219
00:17:43,030 --> 00:17:48,475
và sau đó thứ tư là bộ sưu tập đó là món ăn,

220
00:17:48,475 --> 00:17:53,820
và cuối cùng là chức năng gọi lại mà có được

221
00:17:53,820 --> 00:18:01,110
các tài liệu như là giá trị trả về hoặc

222
00:18:01,110 --> 00:18:08,705
đúng hơn là kết quả của hoạt động cập nhật mà chúng tôi vừa thực hiện.

223
00:18:08,705 --> 00:18:11,890
Sau đó, bên trong chức năng gọi lại này,

224
00:18:11,890 --> 00:18:20,845
tôi sẽ một lần nữa làm một console.log nói

225
00:18:20,845 --> 00:18:31,050
cập nhật tài liệu dấu gạch chéo ngược N. Các tài liệu Cập Nhật sẽ được thông qua

226
00:18:31,050 --> 00:18:38,125
trở lại result.result trên

227
00:18:38,125 --> 00:18:43,115
tài sản này của các đối tượng kết quả được thông qua theo dõi.

228
00:18:43,115 --> 00:18:49,044
Một lần nữa chú ý như thế nào các cuộc gọi được lồng nhau

229
00:18:49,044 --> 00:18:54,585
bên trong các chức năng callback ở đây.

230
00:18:54,585 --> 00:18:57,880
Tôi muốn bạn nhận thấy cấu trúc này của mã

231
00:18:57,880 --> 00:19:03,130
đặc biệt bởi vì đó là những gì tôi sẽ trở lại trong bài tập tiếp theo.

232
00:19:03,130 --> 00:19:05,760
Bây giờ sau khi tôi làm điều đó,

233
00:19:05,760 --> 00:19:07,529
tôi sẽ tìm thấy các tài liệu,

234
00:19:07,529 --> 00:19:12,930
vì vậy hãy để tôi chỉ sao chép điều đó và sau đó tôi sẽ sử dụng cùng một mã ở đây.

235
00:19:13,840 --> 00:19:19,530
Vì vậy, tôi sẽ nói, tìm tài liệu.

236
00:19:20,000 --> 00:19:27,695
Bên trong đây tôi một lần nữa sẽ nói, tìm thấy tài liệu cập nhật.

237
00:19:27,695 --> 00:19:30,375
Sau đó, cuối cùng khi tôi đang thực hiện với điều này,

238
00:19:30,375 --> 00:19:35,855
tôi sẽ chỉ đơn giản là gọi db thả bộ sưu tập.

239
00:19:35,855 --> 00:19:38,760
Vì vậy, tôi sẽ xóa bộ sưu tập món ăn này để tôi

240
00:19:38,760 --> 00:19:41,630
sẽ làm sạch cơ sở dữ liệu của tôi để tôi không có

241
00:19:41,630 --> 00:19:44,350
bất cứ điều gì hơn bởi vì cho bài tập tiếp theo tôi muốn làm sạch

242
00:19:44,350 --> 00:19:47,230
cơ sở dữ liệu và sau đó bắt đầu với một cơ sở dữ liệu sạch hơn.

243
00:19:47,230 --> 00:19:48,835
Vì vậy, tôi sẽ làm sạch

244
00:19:48,835 --> 00:19:57,770
bộ sưu tập các món ăn và sau đó điều này sẽ dẫn đến một cuộc gọi lại.

245
00:19:59,110 --> 00:20:07,410
Vì vậy, bên trong đây tôi sẽ làm một console.log nói,

246
00:20:07,410 --> 00:20:17,000
thả bộ sưu tập, và sau đó tôi sẽ chỉ in ra kết quả mà đi vào.

247
00:20:17,820 --> 00:20:25,250
Sau đó, cuối cùng, đóng cơ sở dữ liệu.

248
00:20:25,650 --> 00:20:28,895
Lưu ý rằng cấu trúc của mã,

249
00:20:28,895 --> 00:20:34,580
DB chèn tài liệu và bên trong hàm callback tôi sẽ gọi

250
00:20:34,580 --> 00:20:37,690
các chức năng tiếp theo và bên

251
00:20:37,690 --> 00:20:39,660
trong callback off mà tôi sẽ gọi

252
00:20:39,660 --> 00:20:42,270
các chức năng tiếp theo và bên trong callback chức năng tiếp theo và như vậy.

253
00:20:42,270 --> 00:20:46,990
Vì vậy, bạn thấy một tập hợp lồng nhau của callbacks ở đây và

254
00:20:46,990 --> 00:20:52,665
một cấu trúc cây lồng nhau tập hợp các cuộc gọi back ở đây.

255
00:20:52,665 --> 00:20:56,505
Đó là điều mà tôi muốn các bạn chú ý đến.

256
00:20:56,505 --> 00:21:02,680
Hãy lưu các thay đổi và đi và xem phiên bản này của ứng dụng của chúng tôi.

257
00:21:02,680 --> 00:21:04,725
Quay trở lại thiết bị đầu cuối,

258
00:21:04,725 --> 00:21:08,045
hãy để tôi thực hiện ứng dụng.

259
00:21:08,045 --> 00:21:13,035
Vì vậy, hãy để tôi gõ NPM bắt đầu và chúng ta sẽ thấy kết quả đó.

260
00:21:13,035 --> 00:21:19,060
Bây giờ, từ kết quả này bạn có thể thấy rằng tài liệu được chèn

261
00:21:19,060 --> 00:21:25,330
vào bộ sưu tập và đó là tài liệu đã được tìm thấy.

262
00:21:25,330 --> 00:21:26,990
Trong bước thứ hai,

263
00:21:26,990 --> 00:21:31,540
chúng tôi đang tìm tài liệu để khi chúng tôi gọi tài liệu tìm DB,

264
00:21:31,540 --> 00:21:36,175
vì vậy đây là tài liệu được lấy từ bộ sưu tập của tôi.

265
00:21:36,175 --> 00:21:39,010
Sau đó, tôi yêu cầu nó để cập nhật các tài liệu với

266
00:21:39,010 --> 00:21:42,915
điều này và sau đó bạn sẽ nhận thấy rằng nó nói tài liệu cập nhật và sau đó

267
00:21:42,915 --> 00:21:46,850
ở đây nó in kết quả hoặc OPS và nó nói N là bằng

268
00:21:46,850 --> 00:21:51,775
một số sửa đổi như một và nó đã được okay.

269
00:21:51,775 --> 00:21:57,010
Sau đó, nó in ra các tài liệu cập nhật,

270
00:21:57,010 --> 00:22:02,020
chúng tôi tìm thấy các tài liệu cập nhật ở đây và đó là những gì được in ra ở đây,

271
00:22:02,020 --> 00:22:05,770
và lưu ý đặc biệt rằng mô tả đã được cập nhật.

272
00:22:05,770 --> 00:22:09,390
Sau đó, cuối cùng, nó đã bỏ bộ sưu tập.

273
00:22:09,990 --> 00:22:16,690
Vì vậy, chúng ta thấy cách ứng dụng này chạy và có thể sử dụng các

274
00:22:16,690 --> 00:22:23,410
mô-đun nút mà chúng tôi thực hiện và sau đó thực hiện các hoạt động cơ sở dữ liệu khác nhau.

275
00:22:23,410 --> 00:22:26,560
Với điều này, chúng tôi hoàn thành bài tập này.

276
00:22:26,560 --> 00:22:31,520
Trong bài tập này tôi đã chứng minh cho bạn cách bạn sẽ tương tác với

277
00:22:31,520 --> 00:22:37,085
máy chủ MongoDB của bạn từ ứng dụng nút của bạn.

278
00:22:37,085 --> 00:22:43,455
Chúng tôi đã thực hiện module node riêng của chúng tôi ở đây và sau đó sử dụng nó

279
00:22:43,455 --> 00:22:46,810
trong ứng dụng node của chúng tôi bằng cách đóng gói

280
00:22:46,810 --> 00:22:50,965
một số hoạt động cơ sở dữ liệu vào module node đó.

281
00:22:50,965 --> 00:22:54,020
Đây là thời điểm tốt để bạn thực hiện một cam kết Git với

282
00:22:54,020 --> 00:22:58,860
nút tin nhắn MongoDB ví dụ phần hai.