Używałem MongoDB intensywnie (przez ostatnie 6 miesięcy), budując hierarchiczny system zarządzania danymi, i mogę ręczyć za łatwość instalacji (zainstaluj, uruchom, użyj!) I szybkość. Tak długo, jak dokładnie myślisz o indeksach, może absolutnie krzyczeć szybko.
Rozumiem, że Cassandra, ze względu na wykorzystanie w dużych projektach, takich jak Twitter, ma lepszą funkcjonalność skalowania, chociaż zespół MongoDB pracuje tam na zasadzie parzystości. Powinienem zaznaczyć, że nie użyłem Cassandry poza etapem próbnym, więc nie mogę mówić o szczegółach.
Prawdziwym swingerem dla mnie, gdy ocenialiśmy bazy danych NoSQL, były zapytania - Cassandra to po prostu gigantyczny magazyn kluczy / wartości, a zapytania są nieco kłopotliwe (przynajmniej w porównaniu z MongoDB), więc dla wydajności musiałbyś powielać całkiem sporo danych jako rodzaj indeksu ręcznego. Z kolei MongoDB korzysta z modelu „zapytanie według przykładu”.
Załóżmy na przykład, że masz kolekcję (Monlista DB dla odpowiednika tabeli RDMS) zawierającą użytkowników. MongoDB przechowuje rekordy jako Dokumenty, które są w zasadzie binarnymi obiektami JSON. na przykład:
{
FirstName: "John",
LastName: "Smith",
Email: "john@smith.com",
Groups: ["Admin", "User", "SuperUser"]
}
Jeśli chcesz znaleźć wszystkich użytkowników o nazwie Smith, którzy mają uprawnienia administratora, po prostu utwórz nowy dokument (w konsoli administracyjnej za pomocą Javascript lub w wersji produkcyjnej w wybranym języku):
{
LastName: "Smith",
Groups: "Admin"
}
... a następnie uruchom zapytanie. Otóż to. Dodano operatorów do porównań, filtrowania RegEx itp., Ale wszystko jest dość proste, a dokumentacja oparta na Wiki jest całkiem dobra.