J'ai beaucoup utilisé MongoDB (au cours des 6 derniers mois), créant un système de gestion de données hiérarchique, et je peux garantir à la fois la facilité de configuration (l'installer, l'exécuter, l'utiliser!) Et la vitesse. Tant que vous réfléchissez soigneusement aux index, il peut absolument crier le long de la vitesse.
Je suppose que Cassandra, en raison de son utilisation avec des projets à grande échelle comme Twitter, a une meilleure fonctionnalité de mise à l'échelle, bien que l'équipe MongoDB y travaille sur la parité. Je dois souligner que je n'ai pas utilisé Cassandra au-delà de la phase d'essai, donc je ne peux pas parler des détails.
Le vrai swinger pour moi, lorsque nous évaluions les bases de données NoSQL, était l'interrogation - Cassandra est fondamentalement juste un magasin de valeurs / clés géant, et l'interrogation est un peu fastidieuse (au moins par rapport à MongoDB), donc pour les performances, vous devrez dupliquer pas mal de données comme une sorte d'index manuel. MongoDB, quant à lui, utilise un modèle "requête par exemple".
Par exemple, supposons que vous ayez une collection (langage MongoDB pour l'équivalent d'une table RDMS) contenant des utilisateurs. MongoDB stocke les enregistrements sous forme de documents, qui sont essentiellement des objets JSON binaires. par exemple:
{
FirstName: "John",
LastName: "Smith",
Email: "john@smith.com",
Groups: ["Admin", "User", "SuperUser"]
}
Si vous vouliez trouver tous les utilisateurs appelés Smith qui ont des droits d'administrateur, il vous suffit de créer un nouveau document (dans la console d'administration en utilisant Javascript, ou en production en utilisant la langue de votre choix):
{
LastName: "Smith",
Groups: "Admin"
}
... puis exécutez la requête. C'est ça. Il y a des opérateurs ajoutés pour les comparaisons, le filtrage RegEx, etc., mais tout est assez simple, et la documentation basée sur Wiki est assez bonne.