He usado MongoDB ampliamente (durante los últimos 6 meses), construyendo un sistema de gestión de datos jerárquico, y puedo garantizar tanto la facilidad de configuración (¡instálela, ejecútela, úsela!) Y la velocidad. Siempre que piense en los índices con cuidado, puede gritar absolutamente, en cuanto a velocidad.
Supongo que Cassandra, debido a su uso con proyectos a gran escala como Twitter, tiene una mejor funcionalidad de escala, aunque el equipo de MongoDB está trabajando en la paridad allí. Debo señalar que no he usado a Cassandra más allá de la etapa de prueba, por lo que no puedo hablar por los detalles.
El verdadero cambio para mí, cuando estábamos evaluando las bases de datos NoSQL, fue la consulta: Cassandra es básicamente un almacén de clave / valor gigante, y las consultas son un poco complicadas (al menos en comparación con MongoDB), por lo que para el rendimiento tendrías que duplicar bastantes datos como una especie de índice manual. MongoDB, por otro lado, utiliza un modelo de "consulta por ejemplo".
Por ejemplo, supongamos que tiene una Colección (lenguaje MongoDB para el equivalente a una tabla RDMS) que contiene Usuarios. MongoDB almacena registros como documentos, que son básicamente objetos JSON binarios. p.ej:
{
FirstName: "John",
LastName: "Smith",
Email: "john@smith.com",
Groups: ["Admin", "User", "SuperUser"]
}
Si desea encontrar a todos los usuarios llamados Smith que tienen derechos de administrador, simplemente cree un nuevo documento (en la consola de administración usando Javascript, o en producción usando el idioma de su elección):
{
LastName: "Smith",
Groups: "Admin"
}
... y luego ejecuta la consulta. Eso es. Hay operadores adicionales para comparaciones, filtros RegEx, etc., pero todo es bastante simple y la documentación basada en Wiki es bastante buena.