Różne rozwiązania NoSQL rozwiązują różne problemy do różnych zastosowań - więc najpierw najlepiej przyjrzyj się problemowi i rozwiąż go
- Piszesz mocno do przechowywania, dlatego szybkość zapisu jest dla Ciebie ważna
- Chcesz wykonać operacje agregacji na tych danych i uzyskać wyniki, które można łatwo przeszukiwać
- Szybkość odczytu nie jest tak ważna z dźwięku rzeczy, przynajmniej nie w stylu „aplikacja internetowa musi być naprawdę responsywna dla milionów ludzi”
- Nie wiem, czy potrzebujesz dynamicznych zapytań, czy nie
Spójrzmy na Couch, Mongo i Raven w bardzo uogólniony sposób
Kruk
- Szybkie zapisy
- Szybkie zapytania (ewentualnie spójne, wstępnie obliczone, agregacja za pomocą mapy/redukcji)
- Dynamiczne zapytania są możliwe, ale nie są tak naprawdę odpowiednie dla twojego przypadku użycia, ponieważ najprawdopodobniej będziesz wysyłać zapytania według daty itp.
Mongo
- Oślepiająco szybko pisze (moim zdaniem niebezpiecznie, bo wyłączenie zasilania oznacza utratę danych;-))
- Wolne odczyty (względnie), agregacja za pomocą mapy/redukcja, nie obliczone wstępnie
- Kwerendy dynamiczne to po prostu to, co robisz, ale prawdopodobnie musisz zdefiniować indeksy w swoich kolumnach, jeśli chcesz uzyskać jakąkolwiek wydajność na tego rodzaju danych
Kanapa
- Szybkie zapisy
- Szybkie odczyty (wstępnie obliczone, ale aktualizowane tylko podczas czytania (IIRC)
- Dynamiczne zapytania nie są możliwe, wszystkie wstępnie zdefiniowane za pomocą mapy lub funkcji map/redukcja
Tak więc, w zasadzie - czy potrzebujesz dynamicznych zapytań dotyczących tego rodzaju danych? Czy szybkość odczytu jest dla Ciebie niezwykle ważna? Jeśli potrzebujesz dynamicznych zapytań, będziesz potrzebować Raven lub Mongo (dla tego rodzaju rzeczy Couch i tak prawdopodobnie nie jest tym, czego szukasz).
FWIW, moim zdaniem jedynym przypadkiem użycia Mongo jest logowanie, więc możesz mieć tam odpowiedź.