2013-08-30 18 views
28

Właśnie zacząłem z mongodb i niedawno przeszedłem Mongoose, ramy ODM.Dlaczego potrzebujemy, jakie korzyści wykorzystać mangusta

W dokumentacji nie mogłem znaleźć powodu, dla którego potrzebujemy użyć Mongoose. Jednym z powodów, dla których mogę dać, jest zdefiniowanie schematu aplikacji od Mongoose.

Szukam więcej możliwych powodów i potrzeb, które przyciągną mnie do korzystania z Mongoose.

Proszę wymienić wszystkie możliwe zalety i przyczyny/potrzeby, dla których należy zastosować Mongoose.

+3

Dlaczego node.js? Dlaczego warto wybrać MongoDB? Tego typu pytania zazwyczaj nie pasują do StackOverflow. – WiredPrairie

Odpowiedz

35

Główną zaletą jest abstrakcja nad czystym mangiem.

Wielu programistów, którzy pochodzą z typów baz danych SQL, czuje się bardzo niekomfortowo, pracując z kolekcjami dynamicznymi, które nie mają zdefiniowanej struktury. Tak więc Schemas w pierwszej kolejności pomaga w tym.
Dodatkowo implementuje sprawdzanie poprawności i inne przydatne funkcje, aby upewnić się, że schemat jest spójny podczas wstawiania/aktualizowania/wyszukiwania dokumentów z kolekcji.

Tworzy także abstrakcję, która ułatwia pracę, więc wygląda na to, że pracujesz tylko z obiektami, a nie z czystymi danymi.

Istnieje wiele innych bajerów jak middleware, plugins, populacji, walidacji. Proszę sprawdzić mongoose docs, aby uzyskać więcej informacji:

Osobiście wolę czyste mongo, ponieważ jest bardziej zgodne z oficjalnymi dokumentami 10gen mongo i nie tworzy abstrakcji, która zawsze kosztuje pewne ograniczenia i zasady, które trzeba będzie przestrzegać.

+0

Faktycznie, choć lubiłem za pomocą mongoose ponieważ jego schematy są pozwalając modele predefine, nie mogłem znaleźć w każdym razie rozwiązania problemu następujący w pytaniu, więc obawiam się, że usunę mangusty z projektu i nie poddawać się bez niego: https://stackoverflow.com/questions/47780700/objectparametererror-parameter-obj-to-document-must-be-an-object-in-mongoos –

17

Jeśli pracujesz z Node.js i jesteś całkiem nowym NoSQL, polecam na początku używanie natywnego sterownika Node (mongodb).

Przyczyny:

  1. Składnia pomiędzy sterownikiem Node i Mongo powłoce jest bardzo podobna i tak dostaniesz szybsze zrozumienie sposobu korzystania MongoDB w ogóle.

  2. modele są jedynie przydatne podczas skalowania do wielkiej aplikacji z dużym API, które muszą być podzielone na M systemu VC (mangusta będąc modeli).

Plusy/minusy korzystania Mongoose:

Plusy:

  • Największy Pro jest to, że sprawdzanie poprawności danych wbudowane w niego (wymaganiami, jakie dane będą dopuszczać się dodane lub zaktualizować bazę danych). Wykonanie tej pracy zajmie trochę czasu.(Ale nie takie trudne)
  • Będzie streszczenie dala większość kodu MongoDB od reszty aplikacji.

Wady

  • Biggest con jest ruszania ze schematów prawo z bramy naprawdę pokonać cel korzystania NoSQL i trudno będzie doświadczyć tego, co jest dobre o konieczności luźną dane ustrukturyzowane system podczas etapów szybkiego rozwoju.

  • Nie wszystkie swoje operacje na danych będzie ładnie pasuje do charakterystyki, które mogą być obudowane z modelem. Hermetyzacja jest szczególnie trudne początkowo - chyba że masz bardzo jasne wyobrażenie o przepływie danych przed rozpoczęciem (która jest idealna, ale nie jest łatwe, gdy budujesz coś koncepcyjnie nowy i wymaga wiele eksperymentów i zmian/przeprojektowanie).

Powiązane problemy