Mongoose có cần thiết cho MongoDB không?

Bây giờ, giả sử chúng tôi thích những chú mèo con lông xù và muốn ghi lại mọi chú mèo con mà chúng tôi từng gặp trong MongoDB. Điều đầu tiên chúng ta cần làm là đưa cầy mangut vào dự án của mình và mở một kết nối đến cơ sở dữ liệu test trên phiên bản MongoDB đang chạy cục bộ của chúng ta

Để cho ngắn gọn, giả sử rằng tất cả các đoạn mã sau nằm trong hàm main()

Với Mongoose, mọi thứ đều bắt nguồn từ Schema. Hãy tham khảo nó và xác định mèo con của chúng ta

const kittySchema = new mongoose.Schema({
  name: String
});

Càng xa càng tốt. Chúng tôi đã có một giản đồ với một thuộc tính, name, sẽ là một

const kittySchema = new mongoose.Schema({
  name: String
});
0. Bước tiếp theo là biên dịch lược đồ của chúng ta thành một Mô hình

const Kitten = mongoose.model('Kitten', kittySchema);

Một mô hình là một lớp mà chúng ta xây dựng các tài liệu. Trong trường hợp này, mỗi tài liệu sẽ là một chú mèo con với các thuộc tính và hành vi như được khai báo trong lược đồ của chúng tôi. Hãy tạo một tài liệu mèo con đại diện cho anh chàng nhỏ bé mà chúng ta vừa gặp trên vỉa hè bên ngoài

Mèo con có thể kêu meo meo, vì vậy hãy xem cách thêm chức năng "nói" vào tài liệu của chúng ta

Các chức năng được thêm vào thuộc tính

const kittySchema = new mongoose.Schema({
  name: String
});
1 của lược đồ được biên dịch thành nguyên mẫu
const kittySchema = new mongoose.Schema({
  name: String
});
2 và được hiển thị trên mỗi phiên bản tài liệu

Chúng tôi có những chú mèo con biết nói. Nhưng chúng tôi vẫn chưa lưu bất cứ thứ gì vào MongoDB. Mỗi tài liệu có thể được lưu vào cơ sở dữ liệu bằng cách gọi phương thức của nó. Đối số đầu tiên cho cuộc gọi lại sẽ là một lỗi nếu có xảy ra

await fluffy.save();
fluffy.speak();

Giả sử thời gian trôi qua và chúng tôi muốn hiển thị tất cả những chú mèo con mà chúng tôi đã thấy. Chúng tôi có thể truy cập tất cả các tài liệu về mèo con thông qua mô hình Mèo con của chúng tôi

const kittens = await Kitten.find();
console.log(kittens);

Chúng tôi vừa đăng nhập tất cả các chú mèo con trong db của mình vào bảng điều khiển. Nếu chúng ta muốn lọc những chú mèo con của mình theo tên, Mongoose hỗ trợ cú pháp truy vấn phong phú của MongoDB

await Kitten.find({ name: /^fluff/ });

Điều này thực hiện tìm kiếm tất cả các tài liệu có thuộc tính tên bắt đầu bằng "lông tơ" và trả về kết quả dưới dạng một mảng mèo con cho hàm gọi lại

Đó là kết thúc của khởi đầu nhanh chóng của chúng tôi. Chúng tôi đã tạo lược đồ, thêm phương thức tài liệu tùy chỉnh, lưu và truy vấn mèo con trong MongoDB bằng Mongoose. Đi qua hướng dẫn hoặc tài liệu API để biết thêm

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

Ưu điểm của mô-đun Mongoose

  1. Việc xác thực bộ sưu tập của cơ sở dữ liệu MongoDB có thể được thực hiện dễ dàng
  2. Cấu trúc được xác định trước có thể được thực hiện trên bộ sưu tập
  3. Các ràng buộc có thể được áp dụng cho các tài liệu của các bộ sưu tập bằng Mongoose
  4. Mô-đun Mongoose được xây dựng trên đầu trình điều khiển MongoDB và cung cấp khả năng trừu tượng hóa truy vấn dễ dàng và xác định truy vấn

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

Trong vài năm viết mã và xây dựng ứng dụng, tôi đã gặp nhiều trường hợp và cách sử dụng cả trình điều khiển MongoDB và Mongoose. Trong bài viết này, tôi sẽ tập trung vào việc sử dụng Node. js làm phụ trợ

Vậy MongoDB là gì, MongoDB là một cơ sở dữ liệu được mô hình hóa tài liệu đã được chấp nhận rộng rãi trong cộng đồng công nghệ nói chung. Các trường hợp sử dụng của nó rất nhiều nhưng vẫn khác biệt với các loại cơ sở dữ liệu khác như cơ sở dữ liệu quan hệ (SQL, Postgresql), cơ sở dữ liệu đồ thị như dgraph, v.v. Do bản chất của nó là MongoDB không liên quan nên thường không thực thi các lược đồ, điều này khiến ban đầu hơi kỳ lạ đối với các lập trình viên đến từ sql hoặc tương tự như nền tảng sql. Do đó, nhu cầu về Mô hình hóa dữ liệu đối tượng và đó là khi Mongoose xuất hiện dưới dạng thư viện ODM cho MongoDB để giúp thực thi các Lược đồ

Sử dụng lược đồ

Các lược đồ rất hữu ích đối với kiểu dữ liệu nghiêm ngặt được thực thi, duy trì cấu trúc và dễ dàng liên quan đến cơ sở dữ liệu sql. Vì vậy, hãy xem một số trường hợp sử dụng mà chúng ta thấy cần có lược đồ

  • Cơ sở dữ liệu có nhiều tài liệu con. Việc truy vấn các tài liệu phụ trong MongoDB đôi khi có thể rất khó chịu và tôi là người chứng kiến ​​điều đó. Đi đến các tài liệu, bạn thậm chí có thể thấy rằng khi thực hiện khớp bằng trên các tài liệu phụ, vấn đề thứ tự trường và các tài liệu phụ phải khớp chính xác.
  • Cơ sở dữ liệu có cấu trúc phức tạp. Khi làm việc trên cơ sở dữ liệu phức tạp với nhiều cấp độ cấu trúc, lược đồ sẽ giúp bạn dễ dàng dự đoán và dễ dàng hơn. Giống như mảng đối tượng, có thể chứa mảng với đối tượng, việc nhìn trực tiếp vào dữ liệu có thể khiến bạn bối rối và thất vọng, nhưng lược đồ cung cấp thông tin chuyên sâu trong khi vẫn đảm bảo định dạng dữ liệu
  • Một lý do chính đáng khác là hạn chế thay đổi hình dạng tài liệu của bạn một cách không cần thiết. Hãy tưởng tượng việc viết một đối tượng vào một giá trị chuỗi được đặt tên trước đây, MongoDB có xu hướng viết điều này chậm do sự thay đổi về hình dạng của tài liệu, nhờ thay đổi kích thước

Mongoose không phải là thư viện ODM duy nhất, còn có các lược đồ hapijs/joi, MongoDB, v.v. Và mặc dù Mongoose đặc biệt tốt trong các lĩnh vực suy luận kiểu dữ liệu, nhưng chúng ta nên chọn sử dụng xác thực lược đồ MongoDB để xác thực lược đồ

Muốn phát triển, tích hợp, thử nghiệm, triển khai và giám sát các hoạt động dữ liệu doanh nghiệp không bị gián đoạn?

Các chuyên gia của chúng tôi sẽ giúp nâng cao tính khả dụng của dữ liệu, giảm thời gian ngừng hoạt động, giảm chi phí vận hành và giảm thiểu rủi ro dữ liệu

Vậy tại sao lại sử dụng xác thực lược đồ MongoDB trên Mongoose?

Đầu tiên, chúng ta nên biết rằng cầy mangut không chính thức thuộc nhóm MongoDB và mặc dù nó giúp ích trong ODM, nhưng nó có thể gây ra những hậu quả không lường trước được trong tương lai, đặc biệt là đối với các dự án lớn và nhóm MongoDB không thể giúp đỡ hoặc giảm thiểu. Ngoài ra, (các) Mối quan hệ giữa lược đồ Mongoose và mô hình cơ sở dữ liệu của chúng tôi chỉ tồn tại trong giới hạn của Nút của chúng tôi. ứng dụng js

Nhưng vâng, bạn có thể cùng nhau tận dụng sức mạnh của các lược đồ và tính duy nhất của mô hình MongoDB bằng cách sử dụng xác thực lược đồ MongoDB. Bạn có thể kiểm tra làm thế nào để đi về nó ở đây

Không sử dụng Schemas, tại sao?

Trong khi sử dụng các lược đồ, bạn có xu hướng bỏ lỡ toàn bộ ý nghĩa của việc sử dụng MongoDB, đặc biệt là trong ngôn ngữ được nhập động như javascript hoặc python. MongoDB cung cấp cho bạn cơ sở dữ liệu loại tài liệu không liên quan có thể tạo ra sự phát triển dữ liệu, thao tác biểu mẫu dữ liệu, hỗ trợ nhiều dạng dữ liệu trong khi vẫn duy trì sự phân tách các mối quan tâm

Hãy xem một số lý do chi tiết

  • Thế giới thực hỗn độn. Nếu bạn sử dụng twitter, bạn sẽ thấy nhiều câu chuyện cười về cách người dùng nên sử dụng sản phẩm của họ so với cách người dùng cố gắng sử dụng sản phẩm đó. Số lượng người dùng tăng lên làm phát sinh các trường hợp mới và tôi có thể đảm bảo với bạn rằng bạn không thể dự đoán đó sẽ là trường hợp nào. Điều này đôi khi dẫn đến các ứng dụng bị sập gây hại cho phạm vi tiếp cận của ứng dụng theo nhiều cách. Đã nhiều lần tôi luôn mắc lỗi chỉ cho phép cái này và chặn mọi thứ khác, thay vào đó nên cho phép mọi thứ trừ cái này.
  •   Tự do khỏi các loại dữ liệu hạn chế. Với MongoDB, bạn không thể ràng buộc bản thân hoặc người dùng bằng một biểu mẫu duy nhất mà dữ liệu phải có, bạn có xu hướng bỏ lỡ các công cụ và tính năng mà MongoDB cung cấp cho bạn để chiếu dữ liệu của bạn lên đó .
  • Hiệu suất. Không có gì đáng ngạc nhiên khi trình điều khiển MongoDB hoạt động tốt hơn Mongoose và nếu bạn muốn đọc thêm về điều này, hãy xem tại đây
  • Hệ sinh thái. MongoDB ngày càng mở rộng, giờ đây chúng tôi có MongoDB Switch cho serverless, MongoDB Charts và tất cả những thứ này đều được hỗ trợ bởi các trình điều khiển riêng không giống như các thư viện của bên thứ ba như Mongoose.

MongoDB sẽ cung cấp cho bạn nhiều hơn nữa với các công cụ và tính năng không quên Giao diện người dùng La bàn, chúng tôi phải sử dụng các công cụ này để dễ dàng hơn là hạn chế. Tuy nhiên, nếu có bất kỳ trường hợp sử dụng cần thiết nào để sử dụng lược đồ, tôi khuyên bạn nên sử dụng xác thực lược đồ MongoDB thông qua trình điều khiển gốc giúp xác thực dữ liệu của bạn đúng cách. Mongoose là tốt và đừng hiểu sai ý tôi, tôi không bảo bạn đột ngột bỏ nó. Tôi chỉ cho bạn thấy sự cần thiết của một công cụ tốt hơn và trong khi Mongoose có thể giúp những người đến từ nền tảng sql, MongoDB sử dụng trình điều khiển gốc thì không

Bạn muốn cải thiện chất lượng, tốc độ, cộng tác và thúc đẩy văn hóa cải tiến liên tục trong lĩnh vực phân tích dữ liệu?. Lên lịch đánh giá miễn phí .

Mongoose có cần thiết cho MongoDB không?

Đăng ký Hội thảo đánh giá ROI trên đám mây miễn phí

Nhận một báo cáo đánh giá chi tiết với các khuyến nghị với một báo cáo đánh giá

Lên lịch hội thảo miễn phí

Mongoose có cần thiết cho MongoDB không?

Mongoose có cần thiết cho MongoDB không?

Thích những gì bạn đọc

Vui lòng để lại phản hồi

0 0 phiếu

Đánh giá bài viết

Nhãn

{} [+]

Tên*

E-mail*

Nhãn

{} [+]

Tên*

E-mail*

0 Nhận xét

Phản hồi nội tuyến

Xem tất cả bình luận

Bài viết liên quan bạn có thể muốn đọc

Mongoose có cần thiết cho MongoDB không?

Quy trình bảo mật dành cho DevOps với IriusRisk là gì

  • DevOps

Đọc thêm

Mongoose có cần thiết cho MongoDB không?

Chạy thành công Jenkins bên trong cụm Kubernetes

  • Đám mây

Đọc thêm

Mongoose có cần thiết cho MongoDB không?

Đổi mới lĩnh vực bán lẻ – từ DevOps đến DataOps

  • Đám mây

Đọc thêm

Mongoose có cần thiết cho MongoDB không?

SÁCH điện tử MIỄN PHÍ. Quy trình RFP được đề xuất để chọn nhà cung cấp đám mây

Chúng tôi ở đây để đơn giản là quá trình di chuyển của bạn sang đám mây bằng cách bắt tay vào một hành trình lên đám mây có hệ thống, có kế hoạch, theo từng giai đoạn

Tôi có nên sử dụng cầy mangut với MongoDB không?

Lợi ích của việc sử dụng Mongoose là chúng tôi có một lược đồ để hoạt động trong mã ứng dụng của chúng tôi và mối quan hệ rõ ràng giữa các tài liệu MongoDB của chúng tôi và các mô hình Mongoose trong ứng dụng của chúng tôi. Nhược điểm là chúng tôi chỉ có thể tạo các bài đăng trên blog và chúng phải tuân theo lược đồ đã xác định ở trên

Việc sử dụng cầy mangut trong MongoDB 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

Tôi có nên học MongoDB trước cầy mangut không?

Mặt khác, việc học cầy mangut có thể mất một chút thời gian và có một số hạn chế trong việc xử lý các lược đồ khá phức tạp. Tuy nhiên, nếu lược đồ bộ sưu tập của bạn không thể đoán trước hoặc bạn muốn có trải nghiệm giống như Mongo-shell bên trong Node. js, sau đó tiếp tục và sử dụng trình điều khiển mongodb . Đó là cách đơn giản nhất để chọn.

MongoDB có tốt hơn cầy mangut không?

Mongoose cho phép người dùng tạo và quản lý dữ liệu trong MongoDB một cách thuận tiện. Mặc dù có thể quản lý dữ liệu, xác định lược đồ, v.v. sử dụng API MongoDB, khá khó để làm như vậy. Do đó, Mongoose đã làm cho cuộc sống trở nên dễ dàng hơn .