[Tư vấn] Nên sử dụng 'mongodb' hay 'mongooes'?



  • Nếu bạn chưa biết vì sao nên dùng Mongooes thì nên đọc quyển này : https://www.packtpub.com/web-development/mean-web-development , tổng hợp cho người mới bước vào thế giới NodeJs luôn.

    Căn bản thì Mongoose sẽ hỗ trợ :

    • Default Value : giá trị mặc định kiểu như , creationDate: Date.now
    • Predefined modifiers : tùy chỉnh dữ liệu trước khi lưu trữ.
    • Validation data,
    • Balalala...

    Nói chung là nếu không có Mongoose thì sẽ phải code nhiều hơn. mà code nhiều hơn thì nhiều bug hơn.

    Còn có Moogose thì chắc code sẽ chạy chậm hơn một xíu, nhưng bù lại code sáng sủa, phân chia rõ ràng.

    Vì mình code xong còn có thèng khác fix bug nữa mà . ahjhj



  • @Duc-Nguyen108: "Còn có Moogose thì chắc code sẽ chạy chậm hơn một xíu, nhưng bù lại code sáng sủa, phân chia rõ ràng."
    Thế cơ ah? Mình cứ tưởng code sáng sủa hay không là do bản thân người viết code chứ =))



  • @tientoantai said in [Tư vấn] Nên sử dụng 'mongodb' hay 'mongooes'?:

    @Duc-Nguyen108: "Còn có Moogose thì chắc code sẽ chạy chậm hơn một xíu, nhưng bù lại code sáng sủa, phân chia rõ ràng."
    Thế cơ ah? Mình cứ tưởng code sáng sủa hay không là do bản thân người viết code chứ =))

    Theo mình thì chắc ý bạn muốn nói 'mongoose' có Schema nên nhìn rõ ràng hơn? Và giờ mình vẫn phân vân không biết dùng gì là tốt hất :D



  • Nếu chỉ đơn thuần làm product thì mongoose mà tiến thôi bạn, dễ dùng dễ xử lý, support nhiều cái hơn mongodb native.
    Chậm hơn hay sáng sủa hơn thì ko bàn vì bạn code sida thì kết quả như nào cũng tự biết.



  • @Bờm said in [Tư vấn] Nên sử dụng 'mongodb' hay 'mongooes'?:

    Chậm hơn hay sáng sủa hơn thì ko bàn vì bạn code sida thì kết quả như nào cũng tự biết.
    Like câu này nhưng mà bảo là

    @Bờm said in [Tư vấn] Nên sử dụng 'mongodb' hay 'mongooes'?:

    Nếu chỉ đơn thuần làm product thì mongoose mà tiến thôi bạn, dễ dùng dễ xử lý, support nhiều cái hơn mongodb native.

    thì hơi xàm rồi đấy

    @Bui-Minh-Phong : như đã comment ở trên không có cái gọi là tốt nhất, tùy từng điều kiện và mục đích mà chọn công cụ phù hợp thôi.

    Ý kiến cá nhân: Vì bài toán của p vẫn đơn giản nên dùng Mongoose sẽ cảm thấy rất TIỆN (và đúng là tiện thật) nhưng nếu yêu cầu nghiệp vụ của p vượt quá khả năng đáp ứng của Mongoose thì sml thôi. Nên là lời khuyên và vẫn cứ là nên tìm hiểu cách thao tác với mongodb bằng Node, Mongoose thì biết dùng cũng tốt nhưng đừng phụ thuộc vào nó
    P/S nói thật đấy, cứ tin đi



  • @tientoantai xàm là xàm như nào bạn? Mongoose có gì mà không đáp ứng được yêu cầu nghiệp vụ cao?
    Mình không hề chê mongodb native, nhưng rõ ràng tính ứng dụng của mongoose vào product là cao hơn hẳn.



  • Về cơ bản, đây là topic xin tư vấn, nên cá nhân mình cho rằng mọi "lời khuyên" đưa ra đều nên khách quan và KHÔNG nên mang tính quy chụp. B có thể cho rằng Mongoose đủ khả năng đáp ứng yêu cầu nghiệp vụ cao (thậm chí là đáp ứng mọi loại nghiệp vụ) và có tính ứng dụng vào product (RẤT) cao. Đó là quyền của b và mình không có nhu cầu thay đổi quan điểm đấy.
    Tuy nhiên 1 câu rất quy chụp kiểu như [Nếu chỉ đơn thuần làm product thì mongoose mà tiến thôi] thì bản thân mình thấy khá là không ổn (mà ở đây mình dùng từ xàm) nếu b thấy phật ý về điều đó thì mình sorry, không có ý gì đâu (đừng giận)
    Trở lại với vấn đề CÓ-NÊN-DÙNG-MONGOOSE-HAY-KHÔNG? thì như mình đã nói, câu trả lời là còn tùy, không có giải pháp chung cho mọi vấn đề và mỗi thứ đều có ưu, nhược điểm riêng, nên thử nghiệm để biết được ưu nhược điểm của từng loại giải pháp và đưa ra kết luận từng giải pháp ấy phù hợp với loại vấn đề nào.
    Và với @Bui-Minh-Phong là người (tự nhận là) mới tìm hiểu thì lại càng nên thử nghiệm.
    Vốn định không nói gì nhiều đâu, nhưng có vẻ không nói thì chắc không ổn nên cũng lý giải một chút tại sao cá nhân mình cho rằng không nên lạm dụng Mongoose.
    Đầu tiên phải quay về với lý do TẠI-SAO-LAI-CHỌN-DÙNG-MONGODB?
    Nếu các b định trả lời mấy câu kiểu như MEAN stack hay code Node ai chả dùng thì hơi ngụy biện rồi. MEAN chỉ là 1 software stack và chẳng có luật nào quy định PHẢI dùng đủ stack và có nhiều DBMS có thểsử dụng trong ứng dụng Node. Câu trả lời cho câu bên trên rất xin lỗi vẫn là còn tùy =))
    Nhưng lưu ý là mongodb là "schemaless" và tại sao lại schemaless thì đọc thêm ở đây
    https://www.mongodb.com/blog/post/why-schemaless
    và Mongoose thì có Schema =)) có ai thấy nghịch lý gì ở đây không? B sử dụng 1 công cụ để có thể sử dụng Schema vào với 1 thứ ĐƯỢC-CỐ-TÌNH-TẠO-RA-VỚI-ĐẶC-ĐIỂM-SCHEMALESS.
    Các b có thể đọc thêm ở đây để tham khảo thêm quan điểm của các LTV http://stackoverflow.com/questions/18531696/why-do-we-need-what-advantages-to-use-mongoose
    P/S: mình không phủ nhận tính TIỆN LỢI của Mongoose trong một số trường hợp nhé, đừng hiểu lầm
    P/S2: @Bờm Mình xin lỗi vì không chỉ ra trường hợp mà Mongoose không đáp ứng được nghiệp vụ, đấy không phải vấn đề chính của topic



  • Cản ơn bác @tientoantai đã trả lời.
    Trước khi viết topic này để hỏi thực ra mình đã tự viết một api restful với 'mongodb' ở mức đơn giản rồi. Càng tìm hiểu thì càng lắm vấn đề mới nên mới tạo topic này để xin tư vấn. Bản thân mình code Java Android cũng rất thích dùng native code để xử lý hơn là dùng các lib bên ngoài.
    Tất nhiên hiểu về native code sẽ tốt hơn.
    Vì đang code quen theo kiểu OOP nên mình viết topic này chủ yếu để giải quyết vấn đề của mình đó là dùng 'mongoose' có Schema nên viết dễ hiểu và tiết kiệm code hơn (mình hiểu như là tạo được đối tượng, phương thức, thuộc tính,...) còn 'mongodb' không làm được việc đó, code sẽ dài hơn (do mình mới tìm hiểu nên chưa biết cách code sao cho chuẩn :D ). Còn mình chỉ viết api restfull đơn giản thôi nên chưa biết các task đòi hỏi xử lý phức tạp như thế nào :)



  • Mình thì thấy ko có gì tuyệt đối :D
    Mình cũng dùng 1 lib tương tự như mongooes, tất nhiên là tiện hơn, code nhanh hơn, gọn hơn nhưng cũng có những trường hợp mình vẫn phải kết nối trực tiếp mongoDB để xử lý vì lib ko hỗ trợ cho trường hợp đó tốt bằng mongoDB
    Tất cả chỉ là tương đối :D


Log in to reply