Para o seu caso em particular, o MongoDB parece uma boa escolha, mas há muitos cenários (provavelmente a maioria deles) em que não seria a melhor opção.
O MongoDB é mais adequado em cenários que exigem leitura / gravação de muitos dados, sem muita ênfase na segurança das transações (se alguns dados se perdem ocasionalmente em uma falha do servidor, não é grande coisa), esperam escalar muito e não ' realmente tem um esquema estável.
O MongoDB não é adequado para cenários que exigem:
- Fortes garantias de ACID: O MongoDB permite que dados duplicados sejam armazenados, leituras inconsistentes e até perda de dados. Essas coisas são boas em algumas aplicações, mas não na maioria.
- Transações com vários objetos: O MongoDB suporta transações ACID, mas apenas para um único objeto / documento. Isso não é suficiente para operações mais complexas, como transferências bancárias, reservas, etc.
- BI tradicional: existem muitas ferramentas de BI que funcionam bem apenas com o SQL tradicional.
- SQL: O MongoDB tem uma linguagem de consulta muito específica, enquanto o SQL é muito conhecido por muitas pessoas (pode ser um aspecto importante a ser considerado), pode fazer muitas coisas complexas (enquanto no MongoDB você teria problemas para executar uma simples join) e é transferível em várias implementações.
O MongoDB é mais rápido e permitirá que você obtenha mais desempenho do sistema, eliminando muitas coisas que o RDBMS impõe por padrão, como verificações de integridade (observe que você também pode ajustar o RDBMS para tais fins), mas a verdade é que, na maioria dos cenários, isso simplesmente não é necessário. Além disso, o trade-off é confiabilidade e flexibilidade (você terá problemas se, mais tarde, decidir que precisa executar operações mais complexas com os dados existentes).
Tudo depende das necessidades do aplicativo que você está construindo. É velocidade e disponibilidade, ou segurança, confiabilidade e flexibilidade. Você precisa saber onde está mais valioso em seus dados (e nas conexões de seus dados). Se você ainda não sabe, provavelmente é melhor escolher algo que não o deixe no futuro e permitir que você adicione os recursos e realize as operações necessárias para a sua aplicação.