Para su caso particular, MongoDB suena como una buena opción, pero hay muchos escenarios (probablemente la mayoría de ellos) donde no sería la mejor opción.
MongoDB es más adecuado en escenarios que requieren leer / escribir una gran cantidad de datos, sin mucho énfasis en la seguridad de las transacciones (si algunos datos se pierden ocasionalmente en un bloqueo del servidor, no es un gran problema), espere escalar en grande y no lo haga ' Realmente tengo un esquema estable.
MongoDB no es adecuado para escenarios que requieren:
- Garantías sólidas de ACID: MongoDB permite almacenar datos duplicados, lecturas inconsistentes e incluso la pérdida de datos. Estas cosas están bien en algunas aplicaciones, pero no en la mayoría.
- Transacciones de objetos múltiples: MongoDB admite transacciones ACID, pero solo para un único objeto / documento. Esto simplemente no será suficiente para operaciones más complejas como transferencias bancarias, hacer una reserva, etc.
- BI tradicional: existen muchas herramientas de BI que solo funcionan bien con SQL tradicional.
- SQL: MongoDB tiene un lenguaje de consulta muy específico, mientras que SQL es muy conocido por mucha gente (puede ser un aspecto importante a considerar), puede hacer muchas cosas complejas (mientras que con MongoDB tendría problemas para realizar un simple unirse) y es transferible a través de muchas implementaciones.
MongoDB es más rápido y le permitirá obtener un mayor rendimiento del sistema al eliminar muchas cosas que RDBMS aplica de forma predeterminada, como las comprobaciones de integridad (tenga en cuenta que de todos modos también puede ajustar RDBMS para tales fines), pero la verdad es que En la mayoría de los escenarios, simplemente no es necesario. Además, la compensación es fiabilidad y flexibilidad (tendrá problemas si, más adelante, decide que necesita realizar operaciones más complejas con los datos existentes).
Todo depende de las necesidades de la aplicación que está creando. ¿Es velocidad y disponibilidad, o seguridad, fiabilidad y flexibilidad? Debe saber en qué lugar de sus datos (y en las conexiones de sus datos) se encuentra más valor. Si aún no lo sabe, probablemente sea mejor si elige algo que no lo pintará en una esquina en el futuro, y le permitirá agregar las funciones y realizar las operaciones que su aplicación necesita.