Użyłem tylko mongodb. Osobiście osobiście radziłbym zacząć od czegoś niskiego, a następnie przejść wyżej. W przeciwnym razie możesz skorzystać z dodatkowych zaawansowanych funkcji dostarczanych przez sterowniki wyższego poziomu, takie jak mangusta, bez żadnych rzeczywistych korzyści.
Problem, który miałem z mongodb, który jest endemiczny dla node.js, to słaba dokumentacja. Istnieje dokumentacja i dużo jej, ale nie zawsze jest ona najbardziej pomocna. Z tego, co widziałem do tej pory, nie ma dobrych i dokładnych przykładów wykorzystania sterownika w produkcji. Dokumentacja jest wypełniona tym samym szablonowym przykładem otwierania połączenia, wydawania polecenia i zamykania połączenia. Możesz powiedzieć, że jest skopiowany i wklejony z szablonu, ponieważ każdy przykład zawiera wymagane dla wszystkiego, co może być potrzebne, a nie tylko to, co jest potrzebne dla każdego przykładu.
Aby podać przykład wzięty całkowicie przypadkowo:
- raw {Boolean, default: false}, wykonuje operacje przy użyciu surowych buforów bson.
Co dokładnie oznacza „wykonywanie operacji przy użyciu surowych buforów bson”? Nie mogę znaleźć tego nigdzie wyjaśnionego, a wyszukiwanie tego wyrażenia w Google nie pomaga. Być może mógłbym dalej Google, ale nie powinienem. Informacje powinny tam być. Czy są jakieś korzyści związane z wydajnością, stabilnością, integralnością, kompatybilnością, przenośnością lub funkcjami włączania / wyłączania tej opcji? Naprawdę nie mam pojęcia bez zagłębienia się w kod, a jeśli jesteś na mojej łodzi, jest to poważny problem. Mam demona, w którym doskonała trwałość nie jest wymagana, ale program musi być bardzo stabilny w czasie wykonywania. Mogę założyć, że oznacza to, że oczekuje ode mnie deserializacji i serializacji do JSON lub jest czymś niskopoziomowym, wewnętrznym i przezroczystym dla użytkownika, ale mogę się mylić. Chociaż zwykle robię dobre założenia, nie mogę polegać na przypuszczeniach i domysłach podczas tworzenia ważnych systemów. Więc tutaj mogę albo przetestować moją asercję za pomocą kodu, albo zagłębić się w Google lub ich kod. Jako jedyny nie jest to takie złe, ale wielokrotnie znajduję się w tej sytuacji, czytając ich dokumentację. Różnica może oznaczać liczbę dni spędzonych na zadaniu w porównaniu z godzinami. Potrzebuję potwierdzenia, a dokumentacja ledwo daje mi wyjaśnienie, nie mówiąc już o potwierdzeniu.
Dokumentacja jest pospieszna. Nie wyjaśnia wydarzeń, podaje niejasne szczegóły dotyczące pojawiania się błędów lub natury tych błędów, a często istnieje kilka sposobów osiągnięcia łączności, które mogą być niejasne. Możesz sobie poradzić i nie jest to całkowicie bezużyteczne, ale jest bardzo szorstkie na krawędziach. Przekonasz się, że niektóre rzeczy są pozostawione domysłom i eksperymentom.