2013-08-30 26 views
28

Tôi vừa mới bắt đầu với mongodb và gần đây tôi đã trải qua Mongoose, một khung ODM.Tại sao chúng ta cần, những lợi thế để sử dụng mongoose

Trên tài liệu, tôi không thể tìm thấy lý do tại sao chúng tôi cần sử dụng Mongoose. Một lý do tôi có thể đưa ra là chúng tôi có thể xác định lược đồ ứng dụng từ Mongoose.

Tôi đang tìm kiếm thêm các lý do có thể có và nhu cầu đó sẽ thu hút tôi sử dụng Mongoose.

Vui lòng liệt kê tất cả các lợi thế và lý do/nhu cầu có thể có tại sao sử dụng Mongoose.

+3

Tại sao chọn nút.JS? Tại sao chọn MongoDB? Những loại câu hỏi này thường không phù hợp với StackOverflow. – WiredPrairie

Trả lời

35

Lợi thế chính là trừu tượng hơn so với mong muốn thuần túy.

Nhiều nhà phát triển đến từ các loại cơ sở dữ liệu SQL cảm thấy rất khó chịu khi làm việc với các bộ sưu tập động không có cấu trúc được xác định. Vì vậy, Lược đồ ở vị trí đầu tiên sẽ giúp điều đó.
Ngoài ra, nó thực hiện xác thực và các tính năng gọn gàng khác để đảm bảo lược đồ của bạn nhất quán khi chèn/cập nhật/tìm tài liệu từ bộ sưu tập.

Nó cũng tạo ra Mô hình trừu tượng giúp dễ dàng thao tác hơn, vì vậy có vẻ như bạn đang làm việc với chỉ các đối tượng thay vì dữ liệu thuần túy.

Có rất nhiều các tính năng khác như middleware, plugins, dân, xác nhận. Vui lòng kiểm tra mongoose docs để biết thêm thông tin:

Cá nhân, tôi thích mong muốn thuần túy vì nó phù hợp hơn với tài liệu mong muốn 10gen chính thức và không tạo ra trừu tượng luôn luôn chi phí một số giới hạn và quy tắc mà bạn sẽ phải tuân theo.

+0

Thực ra, mặc dù tôi thích sử dụng đàn bà vì các lược đồ của nó đang cho phép các mô hình định trước, tôi không thể tìm ra cách giải quyết vấn đề sau trong câu hỏi, vì vậy tôi sợ tôi sẽ loại bỏ mongoose khỏi dự án và tiếp tục mà không có nó: https://stackoverflow.com/questions/47780700/objectparametererror-parameter-obj-to-document-must-be-an-object-in-mongoos –

17

Nếu bạn đang làm việc với Node.js và bạn là NoSQL khá mới, tôi khuyên bạn nên sử dụng trình điều khiển nút gốc (mongodb) lúc đầu.

Lý do:

  1. Cú pháp giữa các driver Node và vỏ Mongo là rất giống nhau và do đó bạn sẽ có được một nắm nhanh hơn về cách sử dụng MongoDB nói chung.

  2. Mô hình chỉ hữu ích khi bạn đang mở rộng thành một ứng dụng lớn với API lớn cần được chia thành hệ thống VC M (mongoose là mô hình của bạn).

Ưu/Nhược điểm của việc sử dụng Mongoose:

Ưu điểm:

  • Pro lớn nhất là nó có xác nhận dữ liệu được xây dựng vào nó (yêu cầu của những dữ liệu bạn sẽ cho phép là đã thêm hoặc cập nhật cơ sở dữ liệu của bạn). Nó sẽ mất một số công việc để xây dựng chính mình.(nhưng không phải là khó)
  • Nó sẽ tóm tắt hầu hết mã mongoDB từ phần còn lại của ứng dụng.

Nhược điểm

  • con lớn nhất được bắt đầu với schemas ngay ra khỏi cổng sẽ thực sự đánh bại mục đích của việc sử dụng NoSQL và nó sẽ khó có thể trải nghiệm những gì là tốt về việc có một dữ liệu có cấu trúc lỏng lẻo trong các giai đoạn phát triển nhanh chóng.

  • Không phải tất cả các hoạt động dữ liệu của bạn đều phù hợp với đặc tính có thể được đóng gói với mô hình. Việc đóng gói đặc biệt khó khăn ban đầu - trừ khi bạn có ý tưởng rất rõ ràng về luồng dữ liệu trước khi bạn bắt đầu (lý tưởng, nhưng không dễ dàng khi bạn xây dựng một cái gì đó mới và đòi hỏi nhiều thử nghiệm và thay đổi/thiết kế lại).

Các vấn đề liên quan