Trong bài tập này, chúng tôi sẽ tiếp tục làm việc trên
nút Mongoose server mà chúng tôi đã phát triển trong bài tập trước đó.
Chúng ta sẽ làm một biến thể khác của điều đó.
Ngoài ra, chúng ta cũng sẽ xem xét cách Mongoose hỗ trợ các tài liệu con,
và điều này cho phép chúng ta lưu trữ một tài liệu bên trong
một tài liệu để lưu trữ thông tin bổ sung.
Hãy nhìn vào điều đó trong bài tập tiếp theo.
Tiếp tục với ví dụ mà chúng tôi đã làm việc, bây giờ,
trong tệp index.js,
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.
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.
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,
như một tham số, NewDish để tạo ra và sau đó lưu nó trong ứng dụng của chúng tôi.
Vì vậy, thay vì làm điều này NewDish tiết kiệm,
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.
Vì vậy, các món ăn tạo ra phương pháp sẽ lấy như một tham số
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,
và sau đó tạo ra và thêm tài liệu vào cơ sở dữ liệu.
Sau đó, chúng ta có thể tiếp tục với phần còn lại của bài tập.
Sửa đổi nhỏ này sẽ cho thấy
rằng cùng một ứng dụng chạy chính xác theo cách như trước.
Vì vậy, với sự thay đổi này,
hãy để tôi chỉ thay đổi thụt lề
ở đây để chuỗi các phương pháp sau đó là rất rõ ràng.
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,
và sau đó thay đổi để sau đó và sau đó chúng tôi sẽ thực hiện
các bước còn lại trên món ăn được tạo ra.
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.
Đi đến thiết bị đầu cuối,
một lần nữa, chạy ứng dụng,
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ủ.
Vì vậy, chúng tôi đang tạo ra một món ăn mới ở đây và sau đó chèn nó
vào cơ sở dữ liệu và sau đó chúng tôi
đang lấy món ăn đó và sau đó in ra trên màn hình.
Với sự thay đổi này, đây là thời điểm tốt để chúng tôi thực hiện
một cam kết git với thông điệp Mongoose phần hai.
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ữ,
và sau đó thực hiện một cam kết git với thông điệp Mongoose phần hai.
Tiếp tục với bài tập,
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
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.
Vì vậy, đi đến tập tin dishes.js,
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à
bình luận Schema và
sau đó xác định điều này như Schema mới.
Trong lược đồ bình luận này,
như bạn đã mong đợi,
chúng tôi sẽ sử dụng điều này để lưu trữ ý kiến về món ăn.
Vì vậy, các ý kiến sẽ chứa một trường đánh giá
là số loại,
và giá trị tối thiểu của nó là một,
giá trị tối đa là năm và bắt buộc là đúng.
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,
bạn có thể chỉ định ranh giới cho nó nếu bạn chọn.
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.
Vì vậy, điều này lưu trữ một tin nhắn và sau đó yêu cầu
là đúng và sau đó chúng tôi cũng sẽ thêm một lĩnh vực gọi
là tác giả, đó là của chuỗi loại và bắt buộc là đúng.
Chúng tôi cũng sẽ thêm trường dấu thời gian cho điều này,
và thiết lập đó thành true.
Vì vậy, đối với mỗi nhận xét được thêm vào,
chúng tôi cũng sẽ lưu trữ dấu thời gian tương ứng.
Vì vậy, bây giờ mà chúng tôi đã tuyên bố một lược đồ bình luận,
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.
Vì vậy, trong lược đồ món ăn,
chúng ta có thể thêm vào ý kiến
đó là một mảng của lược đồ kiểu bình luận,
do đó có nghĩa là mỗi đối tượng món ăn,
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.
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.
Vì vậy, chúng tôi đang lưu trữ tất cả các ý kiến về món ăn bên
trong món ăn chính nó như là một mảng các tài liệu bình luận.
Vì vậy, đây là việc sử dụng các tài liệu phụ trong Mongoose.
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.
Ở đây, họ tạo ra món ăn giống như trước đây.
Sau đó, sau khi chúng tôi tạo ra các món ăn,
sau đó chúng tôi giao diện điều khiển đăng nhập các món ăn.
Sau đó, chúng tôi sẽ cập nhật các món ăn.
Vì vậy, chúng ta sẽ nói các món ăn tìm theo ID và cập nhật.
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 đó.
Vì vậy, chúng tôi sẽ nói, “Tìm theo ID và cập nhật.”
Và chúng ta sẽ tiếp tế.
Trong điều này có hai tham số,
tham số đầu tiên là món ăn.
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,
và sau đó chúng tôi sẽ sửa đổi cùng một món ăn trong bước tiếp theo.
Vì vậy, chúng ta sẽ nói, “Dish. _id.” Và sau đó,
trong dấu ngoặc đơn, chúng tôi chỉ định $set, mô tả,
kiểm tra cập nhật và true mới.
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
vừa chèn bằng cách cập nhật mô tả của nó ở đó.
Bây giờ, cái này phải được bao bọc bên trong.
Lá cờ thứ hai mà chúng tôi đang cung cấp ở đây,
đại tràng mới bằng đúng,
có nghĩa là một khi cập nhật của món ăn đã hoàn tất,
sau đó điều này sẽ trả lại món ăn,
cập nhật món ăn trở lại cho chúng tôi.
Vì vậy, đó là lý do để sử dụng lá cờ này ở đây, nói, sự thật mới.
Vì vậy, món ăn này sẽ được trả lại trong bước tiếp theo.
Và vì vậy, chúng ta sẽ lấy cái đĩa đó và in ra cái đĩa đó.
Vì vậy, trong bước tiếp theo,
chúng ta sẽ sửa đổi điều này và nói, “Cái này, sau đó là món ăn.”
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.
Sau đó, sau này, chúng tôi sẽ chèn một bình luận vào món ăn.
Vì vậy, chúng ta sẽ nói, “Dish.Comments.Push.”
Nhớ lại rằng các ý kiến là một lĩnh vực bên trong món ăn.
Vì vậy, quay trở lại giản đồ,
chúng ta thấy rằng ý kiến này là một mảng của các loại CommentSchema.
Vì vậy, có nghĩa là chúng ta có thể đẩy một mục vào mảng này.
Vì vậy, quay trở lại đây,
chúng ta sẽ nói, “Ý kiến món ăn đẩy.”
Và sau đó, chúng tôi sẽ đẩy một tài liệu nhận xét vào món ăn ở đây.
Vì vậy, tôi sẽ nói, “Ý kiến món ăn đẩy.”
Và chỉ định các trường ở đây.
Vì vậy, chúng ta sẽ nói, “Đánh giá năm, bình luận và tác giả.”
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.
Vì vậy, bây giờ chúng tôi đã sửa đổi món ăn,
bước tiếp theo mà chúng tôi sẽ làm là,
để tôi đóng nó lại và sau đó đặt nó vào nó, sau đó ở đó.
Tôi sẽ quay lại và sửa chữa nó trong một thời gian ngắn.
Vì vậy, bây giờ chúng tôi đã sửa đổi các món ăn,
chúng ta cần phải lưu các món ăn.
Vì vậy, chúng ta sẽ nói, “Trả lại món ăn an toàn.”
Vì vậy, trong bước này,
chúng tôi đang chèn một bình luận vào món ăn, món ăn
mà chúng tôi vừa tạo ra và cập nhật,
và sau đó chúng tôi đang lưu bình luận đó;
và sau đó, điều này sẽ trả lại món ăn.
Và khi món ăn được trả lại trong cuộc gọi lại tiếp theo,
tôi sẽ sau đó nói, “Console log dish.”
Và sau đó,
chúng tôi sẽ nói, “Quay trở lại.”
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.
Hãy lưu các thay đổi và xem ứng dụng này.
Đi đến thiết bị đầu cuối,
chúng ta hãy chạy npm bắt đầu và sau đó xem giá trị kết quả ở đây.
Vì vậy, quay trở lại, chúng ta thấy rằng trong bước đầu tiên,
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 đó.
Và sau đó, một khi món ăn được tạo ra,
trong bước thứ hai,
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.
Vì vậy, phiên bản cập nhật của món ăn được in ra ngay tại đó.
Và bạn có thể thấy rằng mô tả đã được cập nhật từ trường hợp trước đó,
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 đó.
Và trường bình luận,
như bạn có thể thấy ở đây,
là một mảng trống và hun khói.
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;
và sau đó, bình luận đặc biệt này mà
chúng tôi thêm đã được thêm vào mảng ý kiến này.
Vì vậy, bạn có thể thấy nhận xét đó được đính kèm ở đây,
và đây là món ăn được cập nhật mà bây giờ đã được in lên màn hình ở đây.
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.
Đầu tiên chúng tôi tạo ra món ăn,
sau đó chúng tôi cập nhật món ăn,
sau đó chúng tôi chèn một bình luận vào món ăn,
đó là một tài liệu phụ bên trong tài liệu món ăn;
và sau đó, chúng tôi in ra kết quả cho bạn.
Với điều này, chúng tôi hoàn thành bài tập này.
Trong bài tập này, chúng ta đã thấy làm thế nào chúng ta có thể,
đầ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,
sau đó chúng ta thấy việc sử dụng các tài liệu phụ: ở đó,
chúng ta định nghĩa một lược đồ trong
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à
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.
Và sau đó, trong tệp index.js,
chúng tôi đã có thể tạo ra một món ăn,
cập nhật món ăn và cũng đẩy
một tài liệu nhận xét vào món ăn và sau đó lưu các thay đổi ở đây.
Với điều này, chúng tôi hoàn thành bài tập này.
Đâ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.”