Tôi đang xây dựng ứng dụng mới và hiện đang thiết kế cấu trúc của nó, sau đây là một số suy nghĩ về lý do tại sao nên sử dụng hoặc không sử dụng mongoose:
- Mongoose sẽ chậm hơn (đối với các ứng dụng lớn)
- Mongoose khó hơn với các truy vấn phức tạp hơn
- Sẽ có những tình huống khi bạn muốn tốc độ cao hơn và bạn sẽ chọn không có mongoose, sau đó bạn sẽ có một nửa truy vấn với mongoose và nửa có w / o. Đó là tình huống điên rồ, đã từng ..
- Mongoose sẽ giúp bạn viết mã nhanh hơn với các ứng dụng đơn giản có cấu trúc db đơn giản
- Mongoose sẽ khiến bạn đọc tài liệu mongodb VÀ tài liệu mongoose
- Với mongoose ngăn xếp của bạn sẽ có thêm một thứ để phụ thuộc vào và có thêm một khả năng nữa là sụp đổ và cháy thành tro.
trình điều khiển mongodb là trình điều khiển thô, bạn giao tiếp trực tiếp với mongodb. mongoose là lớp trừu tượng. Bạn nhận được I / O đến db dễ dàng hơn trong khi cấu trúc db của bạn đủ đơn giản.
Tính trừu tượng mang đến những yêu cầu và bạn phải tuân theo những yêu cầu đó. Ứng dụng của bạn sẽ chậm hơn, ngốn nhiều RAM và phức tạp hơn, nhưng nếu biết cách sử dụng, bạn có thể ghi nhanh hơn các đối tượng đơn giản, lưu chúng vào cơ sở dữ liệu.
Nếu không có mongoose, bạn sẽ có ứng dụng nhanh hơn với kết nối trực tiếp đến mongodb. Không ai nói rằng bạn không thể viết mô hình của riêng mình để lưu nội dung vào db. Bạn có thể. Và tôi nghĩ nó dễ dàng hơn. Bạn viết mã, mà bạn sẽ sử dụng, bạn biết bạn cần gì. Layer trừu tượng của bạn sẽ nhỏ hơn một chút, sau đó là mongoose.
Tôi đến từ thế giới PHP, ở đó chúng tôi có sql thô với các hàm mysql_ bị giảm giá trị, sau đó chúng tôi có PDO - lớp trừu tượng định hướng đối tượng để giao tiếp với sql. Hoặc bạn có thể chọn một số ORM nặng như Doctrine để có những thứ tương tự như mongoose trên mongoDB. Các đối tượng với phương thức setter / getters / save, v.v. Điều đó tốt, nhưng bằng cách thêm nhiều trừu tượng hơn, bạn đang thêm nhiều tệp hơn, nhiều logic hơn, nhiều tài liệu hơn, nhiều phụ thuộc hơn. Tôi muốn giữ mọi thứ đơn giản và ít phụ thuộc hơn trong ngăn xếp của mình. BTW, đó là lý do tại sao tôi chuyển từ PHP sang Javascript máy chủ-máy khách ngay từ đầu ..
Với mongoose, tôi nghĩ thật tuyệt khi viết một số ứng dụng đơn giản, có cấu trúc db đơn giản tương tự như sql . Khi bạn bắt đầu có các tài liệu phụ và muốn thực hiện tất cả những truy vấn điên rồ đó, tôi thấy nó thực sự khó khăn với mongoose. Bạn phải xem tài liệu mongodb, sau đó xem tài liệu mongoose để tìm cách thực hiện truy vấn bạn muốn. Đôi khi bạn sẽ thấy rằng tương lai X của mongodb không nằm trong mongoose, vì vậy bạn đi xuống trình điều khiển mongodb thô và viết các truy vấn mongodb thô ở một hoặc nơi khác. Nếu không có mongoose, bạn nhìn vào tài liệu mongodb và thực hiện truy vấn của mình.