Mongoose trong NodeJS là gì?
Mô-đun Mongoose là một trong những mô-đun bên ngoài mạnh mẽ nhất của NodeJS. Mongoose là một MongoDB ODM tôi. e (Mô hình hóa cơ sở dữ liệu đối tượng) được sử dụng để dịch mã và biểu diễn của nó từ MongoDB sang Nút. máy chủ js Show
Ưu điểm của mô-đun Mongoose
Nhiều developer có thói quen sử dụng SQL cảm thấy không thoải mái khi làm việc trên MongoDB vì cơ sở dữ liệu Nosql và cấu trúc linh hoạt. Ở đây Mongoose đóng vai trò quan trọng và làm cho lược đồ bộ sưu tập tương tự như cơ sở dữ liệu SQL Mô-đun Mongoose cung cấp một số chức năng để thao tác với các tài liệu của bộ sưu tập cơ sở dữ liệu MongoDB Triển khai cho cấu trúc xác định và Xác thực bộ sưu tập. Mô-đun cầy mangut đã áp đặt một cấu trúc nhất định lên bộ sưu tập và làm cho bộ sưu tập trở nên cứng nhắc Mongoose là một khung JavaScript thường được sử dụng trong Node. js với cơ sở dữ liệu MongoDB. Trong bài viết này, tôi sẽ giới thiệu với bạn về Mongoose và MongoDB, và quan trọng hơn là nơi các công nghệ này phù hợp với ứng dụng của bạn MongoDB là gì?Hãy bắt đầu với MongoDB. MongoDB là cơ sở dữ liệu lưu trữ dữ liệu của bạn dưới dạng tài liệu. Hầu hết các tài liệu này giống với cấu trúc giống như JSON 1 {
2 firstName: "Jamie", 3 lastName: "Munro" 4 }
Một tài liệu sau đó được đặt trong một bộ sưu tập. Như một ví dụ, ví dụ tài liệu trên định nghĩa một đối tượng }
55. Đối tượng }
55 này sau đó thường là một phần của bộ sưu tập có tên là }
57Một trong những yếu tố quan trọng với MongoDB là tính linh hoạt của nó khi nói đến cấu trúc. Mặc dù trong ví dụ đầu tiên, đối tượng }
55 chứa thuộc tính }
59 và }
60, những thuộc tính này không bắt buộc phải có trong mọi tài liệu }
55 là một phần của bộ sưu tập }
57. Đây là điều làm cho MongoDB rất khác so với cơ sở dữ liệu SQL như MySQL hoặc Microsoft SQL Server yêu cầu một lược đồ cơ sở dữ liệu được xác định rõ ràng cho từng đối tượng mà nó lưu trữKhả năng tạo các đối tượng động được lưu trữ dưới dạng tài liệu trong cơ sở dữ liệu là nơi Mongoose phát huy tác dụng Mongoose là gì?Mongoose là Trình ánh xạ tài liệu đối tượng (ODM). Điều này có nghĩa là Mongoose cho phép bạn xác định các đối tượng bằng lược đồ được đánh máy mạnh được ánh xạ tới tài liệu MongoDB Mongoose cung cấp một lượng chức năng đáng kinh ngạc xung quanh việc tạo và làm việc với các lược đồ. Mongoose hiện có tám SchemaTypes mà một thuộc tính được lưu khi nó được lưu vào MongoDB. họ đang
Mỗi loại dữ liệu cho phép bạn chỉ định
Ngoài các tùy chọn phổ biến này, một số loại dữ liệu nhất định cho phép bạn tùy chỉnh thêm cách dữ liệu được lưu trữ và truy xuất từ cơ sở dữ liệu. Ví dụ: kiểu dữ liệu }
63 cũng cho phép bạn chỉ định các tùy chọn bổ sung sau
Các thuộc tính }
64 và }
65 đều hỗ trợ chỉ định giá trị tối thiểu và tối đa được phép cho trường đóHầu hết trong số tám loại dữ liệu được phép sẽ khá quen thuộc với bạn. Tuy nhiên, có một số trường hợp ngoại lệ có thể khiến bạn bất ngờ, chẳng hạn như }
66, }
67, }
68 và }
69Kiểu dữ liệu }
66 cho phép bạn lưu dữ liệu nhị phân. Một ví dụ phổ biến về dữ liệu nhị phân sẽ là hình ảnh hoặc tệp được mã hóa, chẳng hạn như tài liệu PDFKiểu dữ liệu }
67 biến thuộc tính thành trường "bất cứ điều gì xảy ra". Trường này giống với số lượng nhà phát triển có thể sử dụng MongoDB vì không có cấu trúc xác định. Hãy cảnh giác khi sử dụng loại dữ liệu này vì nó làm mất đi nhiều tính năng tuyệt vời mà Mongoose cung cấp, chẳng hạn như xác thực dữ liệu và phát hiện các thay đổi của thực thể để tự động biết để cập nhật thuộc tính khi lưuKiểu dữ liệu }
68 thường chỉ định một liên kết đến một tài liệu khác trong cơ sở dữ liệu của bạn. Ví dụ: nếu bạn có một bộ sưu tập sách và tác giả, tài liệu sách có thể chứa thuộc tính }
68 đề cập đến tác giả cụ thể của tài liệuKiểu dữ liệu }
69 cho phép bạn lưu trữ các mảng giống JavaScript. Với kiểu dữ liệu Mảng, bạn có thể thực hiện các thao tác mảng JavaScript phổ biến trên chúng, chẳng hạn như đẩy, bật, dịch chuyển, cắt lát, v.v.Tóm tắt nhanhTrước khi tiếp tục và tạo một số mã, tôi chỉ muốn tóm tắt lại những gì chúng ta vừa học. MongoDB là một cơ sở dữ liệu cho phép bạn lưu trữ tài liệu với cấu trúc động. Những tài liệu này được lưu trong một bộ sưu tập Mongoose là một thư viện JavaScript cho phép bạn xác định các lược đồ với dữ liệu được nhập mạnh. Khi một lược đồ được xác định, Mongoose cho phép bạn tạo Mô hình dựa trên một lược đồ cụ thể. Mô hình Mongoose sau đó được ánh xạ tới Tài liệu MongoDB thông qua định nghĩa lược đồ của Mô hình Khi bạn đã xác định các lược đồ và mô hình của mình, Mongoose chứa nhiều hàm khác nhau cho phép bạn xác thực, lưu, xóa và truy vấn dữ liệu của mình bằng các hàm MongoDB phổ biến. Tôi sẽ nói về điều này nhiều hơn với các ví dụ mã cụ thể để làm theo Cài đặt MongoDBTrước khi chúng tôi có thể bắt đầu tạo các lược đồ và mô hình Mongoose của mình, MongoDB phải được cài đặt và định cấu hình. Tôi sẽ đề nghị đến thăm. Có một số tùy chọn khác nhau có sẵn để cài đặt. Tôi đã liên kết với Máy chủ Cộng đồng. Điều này cho phép bạn cài đặt phiên bản dành riêng cho hệ điều hành của mình. MongoDB cũng cung cấp Máy chủ doanh nghiệp và cài đặt hỗ trợ đám mây. Vì có thể viết toàn bộ sách về cách cài đặt, điều chỉnh và giám sát MongoDB, nên tôi sẽ gắn bó với Máy chủ Cộng đồng Khi bạn đã tải xuống và cài đặt MongoDB cho hệ điều hành bạn chọn, bạn sẽ cần khởi động cơ sở dữ liệu. Thay vì phát minh lại bánh xe, tôi khuyên bạn nên truy cập tài liệu của MongoDB về cách cài đặt MongoDB Community Edition Tôi sẽ đợi ở đây trong khi bạn định cấu hình MongoDB. Khi bạn đã sẵn sàng, chúng ta có thể chuyển sang thiết lập Mongoose để kết nối với cơ sở dữ liệu MongoDB mới cài đặt của bạn Thiết lập MongooseMongoose là một khung JavaScript và tôi sẽ sử dụng nó trong một Node. ứng dụng js. Nếu bạn đã có Nút. js được cài đặt, bạn có thể chuyển sang bước tiếp theo. Nếu bạn không có Nút. js, tôi khuyên bạn nên bắt đầu bằng cách truy cập Node. js và chọn trình cài đặt cho hệ điều hành của bạn với nút. js đã được thiết lập và sẵn sàng hoạt động, tôi sẽ tạo một ứng dụng mới và sau đó cài đặt Gói NPM Mongoose Với dấu nhắc lệnh được đặt ở nơi bạn muốn cài đặt ứng dụng của mình, bạn có thể chạy các lệnh sau 1 mkdir mongoose_basics
2 {
13 {
3Để khởi tạo ứng dụng của tôi, tôi để mọi thứ làm giá trị mặc định của chúng. Bây giờ tôi sẽ cài đặt gói cầy mangut như sau 1 {
5Với tất cả các điều kiện tiên quyết được định cấu hình, hãy kết nối với cơ sở dữ liệu MongoDB. Tôi đã đặt đoạn mã sau bên trong một chỉ mục. js vì tôi đã chọn đó làm điểm bắt đầu cho ứng dụng của mình 1 {
72 3 20 Dòng mã đầu tiên bao gồm thư viện }
75. Tiếp theo, tôi mở một kết nối tới cơ sở dữ liệu mà tôi đã gọi là }
76 bằng cách sử dụng hàm }
77Hàm }
77 chấp nhận hai tham số tùy chọn khác. Tham số thứ hai là một đối tượng của các tùy chọn nơi bạn có thể xác định những thứ như tên người dùng và mật khẩu, nếu cần. Tham số thứ ba, cũng có thể là tham số thứ hai nếu bạn không có tùy chọn nào, là chức năng gọi lại sau khi cố gắng kết nối. Chức năng gọi lại có thể được sử dụng theo một trong hai cách1 22_______2_______4_______ 25 4 27 28 29 firstName: "Jamie",0 firstName: "Jamie",1 firstName: "Jamie",2 firstName: "Jamie",3 firstName: "Jamie",4 firstName: "Jamie",5 firstName: "Jamie",6 firstName: "Jamie",7 firstName: "Jamie",8__ firstName: "Jamie",9_______4_______0_______4_______1_______4_______2_______4_______3 Để tránh giới thiệu tiềm năng về Lời hứa JavaScript, tôi sẽ sử dụng cách đầu tiên. Dưới đây là một chỉ số cập nhật. tập tin js 1 {
72 3 38 4___ 27 lastName: "Munro"1 29 firstName: "Jamie",0 lastName: "Munro"4 firstName: "Jamie",2 firstName: "Jamie",3 28 Nếu xảy ra lỗi khi kết nối với cơ sở dữ liệu, ngoại lệ sẽ được đưa ra và tất cả quá trình xử lý tiếp theo sẽ bị dừng. Khi không có lỗi xảy ra, tôi đã ghi thông báo thành công vào bảng điều khiển Mongoose hiện đã được thiết lập và kết nối với cơ sở dữ liệu có tên là }
76. Kết nối MongoDB của tôi không sử dụng tên người dùng, mật khẩu hoặc cổng tùy chỉnh. Nếu bạn cần đặt các tùy chọn này hoặc bất kỳ tùy chọn nào khác trong khi kết nối, tôi khuyên bạn nên xem lại Tài liệu Mongoose về kết nối. Tài liệu này cung cấp giải thích chi tiết về nhiều tùy chọn có sẵn cũng như cách tạo nhiều kết nối, tổng hợp kết nối, bản sao, v.v.Với kết nối thành công, hãy chuyển sang xác định Lược đồ Mongoose Xác định lược đồ MongooseTrong phần giới thiệu, tôi đã cho thấy một đối tượng }
55 chứa hai thuộc tính. }
59 và }
60. Trong ví dụ sau, tôi đã dịch tài liệu đó thành Mongoose Schema1 lastName: "Munro"9_______2_______ 41_______4_______ 43 4 28 Đây là một Lược đồ rất cơ bản chỉ chứa hai thuộc tính không có thuộc tính nào được liên kết với nó. Hãy mở rộng ví dụ này bằng cách chuyển đổi các thuộc tính tên và họ thành các đối tượng con của thuộc tính }
83. Tài sản }
83 sẽ bao gồm cả họ và tên. Tôi cũng sẽ thêm thuộc tính }
85 thuộc loại }
651 lastName: "Munro"9_______2_______ 49_______4_______ }
147_______3_______2_______7 }
5_______2_______9}
7firstName: "Jamie",0 28 Như bạn có thể thấy, Mongoose cho phép tôi tạo các lược đồ rất linh hoạt với nhiều cách kết hợp khả thi khác nhau về cách tôi có thể tổ chức dữ liệu của mình Trong ví dụ tiếp theo này, tôi sẽ tạo hai lược đồ mới sẽ trình bày cách tạo mối quan hệ với một lược đồ khác. }
87 và }
88. Lược đồ }
88 sẽ chứa một tham chiếu đến lược đồ }
871 11 2 13 3 49 4 17 27 19 29 mkdir mongoose_basics
1firstName: "Jamie",0 mkdir mongoose_basics
3firstName: "Jamie",2 mkdir mongoose_basics
5firstName: "Jamie",3 mkdir mongoose_basics
7firstName: "Jamie",5 mkdir mongoose_basics
9firstName: "Jamie",6 {
01firstName: "Jamie",8 {
03firstName: "Jamie",9 {
0531 {
0732 {
09{
1028 Trên đây là lược đồ }
87 mở rộng dựa trên các khái niệm của lược đồ }
55 mà tôi đã tạo trong ví dụ trước. Để liên kết Tác giả và Sách với nhau, thuộc tính đầu tiên của lược đồ }
87 là thuộc tính }
94 thuộc loại lược đồ }
68. }
94 là cú pháp phổ biến để tạo khóa chính trong Mongoose và MongoDB. Sau đó, giống như lược đồ }
55, tôi đã xác định một thuộc tính }
83 chứa họ và tên của tác giả. Mở rộng dựa trên lược đồ }
55, }
87 chứa một số loại lược đồ }
63 khác. Tôi cũng đã thêm một loại lược đồ }
66 có thể chứa ảnh hồ sơ của tác giả. Thuộc tính cuối cùng chứa ngày tạo của tác giả; . Khi một tác giả được duy trì trong cơ sở dữ liệu, thuộc tính này sẽ được đặt thành ngày/giờ hiện tạiĐể hoàn thành các ví dụ về lược đồ, hãy tạo một lược đồ }
88 chứa tham chiếu đến tác giả bằng cách sử dụng loại lược đồ }
681 {
132 13 3 {
174 {
1927 {
2129 {
23firstName: "Jamie",0 {
25firstName: "Jamie",2 {
27firstName: "Jamie",3 {
29firstName: "Jamie",5 }
5firstName: "Jamie",6 {
33firstName: "Jamie",8 {
35firstName: "Jamie",9 {
3731 {
3932 {
41{
10{
43{
44{
45{
46{
47{
48{
49{
50{
51{
52{
53{
54{
03{
56{
05{
58{
07{
60{
09{
6228 Lược đồ }
88 chứa một số thuộc tính kiểu }
63. Như đã đề cập ở trên, nó chứa một tham chiếu đến lược đồ }
87. Để chứng minh thêm các định nghĩa lược đồ mạnh mẽ, lược đồ }
88 cũng chứa một }
69 của 110. Mỗi xếp hạng bao gồm một thuộc tính ngày tháng 111, 112, 113, và }
85Mongoose cho phép bạn linh hoạt tạo các lược đồ có tham chiếu đến các lược đồ khác hoặc, như trong ví dụ trên với thuộc tính 110, nó cho phép bạn tạo một }
69 thuộc tính con có thể được chứa trong một lược đồ liên quan (như sách cho tác giả) hoặc Tạo và lưu các mô hình MongooseVì các lược đồ }
87 và }
88 thể hiện tính linh hoạt của lược đồ Mongoose, tôi sẽ tiếp tục sử dụng các lược đồ đó và rút ra một mô hình 120 và ________0____21 từ chúng 1 {
65_______2_______3 {
68Mô hình Mongoose, khi được lưu, sẽ tạo Tài liệu trong MongoDB với các thuộc tính như được xác định bởi lược đồ mà nó được lấy từ đó Để chứng minh việc tạo và lưu một đối tượng, trong ví dụ tiếp theo này, tôi sẽ tạo một số đối tượng. một 120 Mô hình và một số 121 Mô hình. Sau khi được tạo, các đối tượng này sẽ được duy trì trong MongoDB bằng cách sử dụng phương thức 124 của Mô hình 1 {
702 {
723 49 4 {
7627 {
7829 }
5firstName: "Jamie",0 {
82firstName: "Jamie",2 {
84firstName: "Jamie",3 {
86firstName: "Jamie",5 {
88firstName: "Jamie",6 firstName: "Jamie",8 {
91firstName: "Jamie",9 {
9331 {
9532 {
97{
10{
95{
44201 {
46203 {
48205 {
50207 {
52209 {
54211 {
56213 {
58215 {
60{
95{
62219 220 221 222 {
95224________2____ Trong ví dụ trên, tôi đã vô tình chèn tham chiếu đến hai cuốn sách gần đây nhất của mình. Ví dụ bắt đầu bằng cách tạo và lưu một 125 được tạo từ một Mô hình 120. Bên trong hàm 124 của 125, nếu xảy ra lỗi, ứng dụng sẽ xuất ra một ngoại lệ. Khi lưu thành công, bên trong hàm 124, hai đối tượng sách được tạo và lưu. Tương tự như 125, nếu xảy ra lỗi khi lưu, sẽ xuất ra lỗi; Để tạo tham chiếu đến Tác giả, các đối tượng cuốn sách đều tham chiếu đến khóa chính }
94 của lược đồ }
87 trong thuộc tính }
87 của lược đồ }
88Xác thực dữ liệu trước khi lưuĐiều khá phổ biến là dữ liệu cuối cùng sẽ tạo ra một mô hình được điền vào một biểu mẫu trên trang web. Do đó, bạn nên xác thực dữ liệu này trước khi lưu Mô hình vào MongoDB Trong ví dụ tiếp theo này, tôi đã cập nhật lược đồ tác giả trước đó để thêm xác thực cho các thuộc tính sau. }
59, 136, 137 và 138 1 11 2 13 3 49 4 261 27 263 29 265 firstName: "Jamie",0 267 firstName: "Jamie",2 269 firstName: "Jamie",3 mkdir mongoose_basics
1firstName: "Jamie",5 273 firstName: "Jamie",6 275 firstName: "Jamie",8 277 firstName: "Jamie",9 279 31 281 32 283 {
10285 {
44287 {
46289 {
48mkdir mongoose_basics
1{
50293 {
52277 {
54279 {
56281 {
58firstName: "Jamie",01 {
60285 {
62firstName: "Jamie",05 220 289 222 mkdir mongoose_basics
1________2_____ Tài sản }
59 đã được quy cho tài sản 140. Bây giờ khi tôi gọi hàm 124, Mongoose sẽ trả về lỗi với thông báo cho biết thuộc tính }
59 là bắt buộc. Tôi đã chọn không yêu cầu thuộc tính }
60 trong trường hợp Cher hoặc Madonna là tác giả trong cơ sở dữ liệu của tôiTất cả các thuộc tính 136, 137 và 138 đều áp dụng các trình xác thực tùy chỉnh rất giống nhau. Mỗi người đều đảm bảo rằng các giá trị bắt đầu bằng tên miền tương ứng của mạng xã hội. Các trường này không bắt buộc, vì vậy trình xác thực sẽ chỉ được áp dụng khi dữ liệu được cung cấp cho thuộc tính đó Tìm kiếm và cập nhật dữ liệuPhần giới thiệu về Mongoose sẽ không hoàn chỉnh nếu không có ví dụ về tìm kiếm bản ghi và cập nhật một hoặc nhiều thuộc tính trên đối tượng đó Mongoose cung cấp một số hàm khác nhau để tìm dữ liệu cho một Model cụ thể. Các chức năng là 147, 148 và 149 Các hàm 147 và 148 đều chấp nhận một đối tượng làm đầu vào cho phép tìm kiếm phức tạp, trong khi đó 149 chỉ chấp nhận một giá trị duy nhất với hàm gọi lại (một ví dụ sẽ sớm được đưa ra sau đây). Trong ví dụ tiếp theo này, tôi sẽ trình bày cách tìm tất cả các sách có chứa chuỗi "mvc" trong tiêu đề của chúng 1 firstName: "Jamie",41_______2_______ firstName: "Jamie",43_______4__________ firstName: "Jamie",45 41_______93 27 {
9529 firstName: "Jamie",51 firstName: "Jamie",0 28 Bên trong hàm 147, tôi đang tìm kiếm chuỗi phân biệt chữ hoa chữ thường "mvc" trên thuộc tính 154. Điều này được thực hiện bằng cách sử dụng cùng một cú pháp để tìm kiếm một chuỗi bằng JavaScript Lệnh gọi hàm find cũng được liên kết với các phương thức truy vấn khác, chẳng hạn như 155, 156, 157, 158, ________0____59, ________0____60, v.v. Hãy mở rộng dựa trên ví dụ trước để giới hạn kết quả của chúng tôi trong 5 cuốn sách đầu tiên và sắp xếp theo ngày tạo giảm dần. Điều này sẽ trả về năm cuốn sách gần đây nhất có chứa "mvc" trong tiêu đề 1 firstName: "Jamie",41 2 firstName: "Jamie",43_______4__________ firstName: "Jamie",59 43_______61 27 firstName: "Jamie",63 29 {
93firstName: "Jamie",0 {
95firstName: "Jamie",2 firstName: "Jamie",51 firstName: "Jamie",3 28 Sau khi áp dụng hàm 147, thứ tự của các hàm khác không quan trọng vì tất cả các hàm được xâu chuỗi được biên dịch cùng nhau thành một truy vấn duy nhất và không được thực thi cho đến khi hàm ________0____62 được gọi Như tôi đã đề cập trước đó, 149 được thực thi hơi khác một chút. Nó thực thi ngay lập tức và chấp nhận chức năng gọi lại, thay vì cho phép một chuỗi chức năng. Trong ví dụ tiếp theo này, tôi đang truy vấn một tác giả cụ thể bằng }
94 của họ1 firstName: "Jamie",73_______2_______ firstName: "Jamie",75 3___ firstName: "Jamie",77 43_______79 27 28 }
94 trong trường hợp của bạn có thể hơi khác một chút. Tôi đã sao chép }
94 này từ một 167 trước đó khi tìm danh sách sách có "mvc" trong tiêu đề của chúng Khi một đối tượng đã được trả lại, bạn có thể sửa đổi bất kỳ thuộc tính nào của nó để cập nhật nó. Khi bạn đã thực hiện các thay đổi cần thiết, bạn gọi phương thức 124, giống như khi bạn tạo đối tượng. Trong ví dụ tiếp theo này, tôi sẽ mở rộng ví dụ 169 và cập nhật thuộc tính 138 trên tác giả 1 firstName: "Jamie",73 2 {
93_______4__________{
9543_______89 27 {
9529 firstName: "Jamie",93 firstName: "Jamie",0 221 firstName: "Jamie",2 firstName: "Jamie",97 firstName: "Jamie",3 firstName: "Jamie",99_______3_______5_______2_______27_______3_______8_______8 Sau khi tác giả được truy xuất thành công, thuộc tính 138 được đặt và hàm 124 được gọi. Mongoose có thể phát hiện ra rằng thuộc tính 138 đã bị thay đổi và nó sẽ gửi một câu lệnh cập nhật tới MongoDB chỉ trên các thuộc tính đã được sửa đổi. Nếu xảy ra lỗi khi lưu, một ngoại lệ sẽ được đưa ra và sẽ tạm dừng ứng dụng. Khi thành công, một thông báo thành công được ghi vào bảng điều khiển Mongoose cũng cung cấp hai chức năng bổ sung giúp tìm và lưu đối tượng trong một bước duy nhất với các chức năng được đặt tên phù hợp. 174 và 175. Hãy cập nhật ví dụ trước để sử dụng 174 1 305_______2_______ 307_______4__________ 309_______6_______4_______11 27 {
9529 315 firstName: "Jamie",0 28 Trong ví dụ trước, các thuộc tính cần cập nhật được cung cấp dưới dạng đối tượng cho tham số thứ hai của hàm 174. Hàm gọi lại hiện là tham số thứ ba. Khi cập nhật thành công, đối tượng }
87 trả về chứa thông tin đã cập nhật. Điều này được ghi vào bảng điều khiển để xem các thuộc tính của tác giả được cập nhậtMã mẫu cuối cùngTrong suốt bài viết này, tôi đã cung cấp các đoạn mã nhỏ xác định một hành động rất cụ thể, chẳng hạn như tạo lược đồ, tạo mô hình, v.v. Hãy đặt tất cả lại với nhau trong một ví dụ đầy đủ. Đầu tiên, tôi đã tạo hai tệp bổ sung. 179 và 180. Các tệp này chứa các định nghĩa lược đồ tương ứng và việc tạo mô hình. Dòng mã cuối cùng làm cho mô hình có sẵn để sử dụng trong tệp 181 Hãy bắt đầu với tác giả. tập tin js 1 {
72 3 11 4 13 27 49 29 261 firstName: "Jamie",0 263 firstName: "Jamie",2 265 firstName: "Jamie",3 267 firstName: "Jamie",5 269 firstName: "Jamie",6 mkdir mongoose_basics
1firstName: "Jamie",8 273 firstName: "Jamie",9 275 31 277 32 279 {
10281 {
44283 {
46285 {
48287 {
50289 {
52mkdir mongoose_basics
1{
54293 {
56277 {
58279 {
60281 {
62firstName: "Jamie",01 220 285 222 firstName: "Jamie",05 224________2______ Tiếp đến là tệp 180 1 {
72 3 {
134 13 27 {
1729 lastName: "Munro"23 firstName: "Jamie",0 lastName: "Munro"25 firstName: "Jamie",2 lastName: "Munro"27 firstName: "Jamie",3 lastName: "Munro"29 firstName: "Jamie",5 lastName: "Munro"31 firstName: "Jamie",6 lastName: "Munro"33 firstName: "Jamie",8 mkdir mongoose_basics
1firstName: "Jamie",9 lastName: "Munro"37 31 lastName: "Munro"39 32 lastName: "Munro"41 {
10lastName: "Munro"43 {
44lastName: "Munro"45 {
46lastName: "Munro"47 {
48lastName: "Munro"49 {
50lastName: "Munro"51 {
52lastName: "Munro"53 {
54289 {
56lastName: "Munro"57 {
58firstName: "Jamie",31 {
60firstName: "Jamie",33 {
62firstName: "Jamie",35 220 firstName: "Jamie",37 222 28 224________2_____ Và cuối cùng, tệp 181 được cập nhật 1 {
72 3 lastName: "Munro"78 4 lastName: "Munro"80 27 29 38 firstName: "Jamie",0 firstName: "Jamie",75 firstName: "Jamie",2 {
95firstName: "Jamie",3 lastName: "Munro"89 firstName: "Jamie",5 {
95firstName: "Jamie",6 lastName: "Munro"93 firstName: "Jamie",8 lastName: "Munro"95 firstName: "Jamie",9 lastName: "Munro"97 31 lastName: "Munro"99 32 401 {
10267 {
44405 {
46407 {
48409 {
50227 {
52{
54414 {
56221 {
58firstName: "Jamie",97 {
60420 {
62firstName: "Jamie",97 220 424 222 426 224 428 226________6____ Trong ví dụ trên, tất cả các hành động của Mongoose được chứa trong hàm }
77. Các tệp }
87 và }
88 được bao gồm trong hàm 187 sau khi bao gồm thư viện }
75Với MongoDB đang chạy, bây giờ bạn có thể chạy Node hoàn chỉnh. ứng dụng js bằng lệnh sau 1 480 Sau khi tôi lưu một số dữ liệu vào cơ sở dữ liệu của mình, tôi đã cập nhật tệp 181 với các hàm tìm kiếm như sau 1 {
72 3 lastName: "Munro"78 4 lastName: "Munro"80 27 29 38 firstName: "Jamie",0 firstName: "Jamie",75 firstName: "Jamie",2 {
95firstName: "Jamie",3 lastName: "Munro"89 firstName: "Jamie",5 {
95firstName: "Jamie",6 }
00firstName: "Jamie",8 }
02firstName: "Jamie",9 }
0431 }
0632 }
08{
10221 {
44firstName: "Jamie",97 {
46}
14{
48227 {
50{
95{
52}
20{
54221 {
56firstName: "Jamie",97 {
58}
26{
60firstName: "Jamie",97 {
62}
30220 444 222 }
34224 }
36________2____ Một lần nữa, bạn có thể chạy ứng dụng bằng lệnh. 190 Tóm lượcSau khi đọc bài viết này, bạn sẽ có thể tạo các Mô hình và Lược đồ Mongoose cực kỳ linh hoạt, áp dụng xác thực đơn giản hoặc phức tạp, tạo và cập nhật tài liệu và cuối cùng là tìm kiếm các tài liệu đã được tạo Hy vọng rằng bây giờ bạn cảm thấy thoải mái khi sử dụng Mongoose. Nếu bạn đang muốn tìm hiểu thêm, tôi khuyên bạn nên xem lại Hướng dẫn Mongoose đi sâu vào các chủ đề nâng cao hơn như dân số, phần mềm trung gian, lời hứa, v.v. NPM Mongoose được sử dụng để làm gì?Mongoose là thư viện Mô hình hóa dữ liệu đối tượng (ODM) cho MongoDB và Node. js. Nó quản lý các mối quan hệ giữa dữ liệu, cung cấp xác thực lược đồ và được sử dụng để dịch giữa các đối tượng trong mã và biểu diễn của các đối tượng đó trong MongoDB .
Lược đồ Mongoose trong nút JS là gì?Lược đồ Mongoose xác định cấu trúc của tài liệu, giá trị mặc định, trình xác thực, v.v. . , trong khi mô hình Mongoose cung cấp giao diện cho cơ sở dữ liệu để tạo, truy vấn, cập nhật, xóa bản ghi, v.v.
Tại sao Mongoose được sử dụng trong phụ trợ?Mongoose cho phép chúng tôi. ánh xạ các thuộc tính và yêu cầu của mô hình tới cơ sở dữ liệu, tạo các bộ sưu tập và tài liệu mới trong cơ sở dữ liệu của chúng tôi, đồng thời thực hiện các truy vấn để truy xuất thông tin từ cơ sở dữ liệu .
Mongoose JS có phải là một khung không?Mongoose là một khung JavaScript thường được sử dụng trong Nút. js với cơ sở dữ liệu MongoDB. |