Ich habe MongoDB (in den letzten 6 Monaten) ausgiebig genutzt und ein hierarchisches Datenverwaltungssystem aufgebaut. Ich kann sowohl für die einfache Einrichtung (installieren, ausführen, verwenden!) Als auch für die Geschwindigkeit bürgen. Solange Sie sorgfältig über Indizes nachdenken, kann es in Bezug auf die Geschwindigkeit absolut mitschreien.
Ich stelle fest, dass Cassandra aufgrund seiner Verwendung bei Großprojekten wie Twitter eine bessere Skalierungsfunktionalität hat, obwohl das MongoDB-Team dort an Parität arbeitet. Ich sollte darauf hinweisen, dass ich Cassandra nicht über die Testphase hinaus verwendet habe, daher kann ich nicht für Details sprechen.
Der eigentliche Swinger für mich, als wir NoSQL-Datenbanken bewerteten, war die Abfrage - Cassandra ist im Grunde genommen nur ein riesiger Schlüssel- / Wertspeicher, und die Abfrage ist etwas umständlich (zumindest im Vergleich zu MongoDB), also müssten Sie für die Leistung Duplizieren Sie eine ganze Reihe von Daten als eine Art manuellen Index. MongoDB verwendet dagegen ein "Query by Example" -Modell.
Angenommen, Sie haben eine Sammlung (MongoDB-Sprache für das Äquivalent zu einer RDMS-Tabelle), die Benutzer enthält. MongoDB speichert Datensätze als Dokumente, bei denen es sich im Grunde um binäre JSON-Objekte handelt. z.B:
{
FirstName: "John",
LastName: "Smith",
Email: "john@smith.com",
Groups: ["Admin", "User", "SuperUser"]
}
Wenn Sie alle Benutzer mit dem Namen Smith finden möchten, die über Administratorrechte verfügen, erstellen Sie einfach ein neues Dokument (an der Administrationskonsole mit Javascript oder in der Produktion mit der Sprache Ihrer Wahl):
{
LastName: "Smith",
Groups: "Admin"
}
... und führen Sie dann die Abfrage aus. Das ist es. Es gibt Operatoren für Vergleiche, RegEx-Filterung usw., aber alles ist ziemlich einfach und die Wiki-basierte Dokumentation ist ziemlich gut.