Per il tuo caso particolare, MongoDB sembra una buona scelta, ma ci sono molti scenari (probabilmente molti di loro) in cui non sarebbe la scelta migliore.
MongoDB è più adatto in scenari che richiedono lettura / scrittura di molti dati, senza molta enfasi sulla sicurezza delle transazioni (se alcuni dati si perdono occasionalmente in un crash del server, non è un grosso problema ), si prevede di ridimensionarsi in grande, e in realtà non hanno uno schema stabile.
MongoDB è non adatto per scenari che richiedono:
- Buone garanzie ACID: MongoDB consente di archiviare dati duplicati, letture incoerenti e persino perdita di dati. Queste cose vanno bene in alcune applicazioni, ma non nella maggior parte dei casi.
- Transazioni multi-oggetto: MongoDB supporta le transazioni ACID, ma solo per un singolo oggetto / documento. Questo semplicemente non lo taglierà per operazioni più complesse come i bonifici bancari, la prenotazione, ecc.
- BI tradizionale: ci sono molti strumenti di BI là fuori che funzionano solo bene con SQL tradizionale.
- SQL: MongoDB ha un linguaggio di query molto specifico, mentre SQL è molto conosciuto da molte persone (potrebbe essere un aspetto importante da considerare), può fare un sacco di cose complesse (mentre con MongoDB avresti problemi eseguire un semplice join) ed è trasferibile attraverso molte implementazioni.
MongoDB è più veloce e ti permetterà di ottenere più prestazioni dal sistema eliminando un sacco di cose che RDBMS applica di default, come i controlli di integrità (nota che puoi anche modificare RDBMS per tali scopi, comunque), ma il la verità è che, nella maggior parte degli scenari, non è proprio necessario. Inoltre, il compromesso è affidabilità e flessibilità (avrai problemi se, in seguito, deciderai di dover eseguire operazioni più complesse con i dati esistenti).
Tutto dipende dalle esigenze dell'applicazione che stai creando. È velocità e disponibilità, o sicurezza, affidabilità e flessibilità. Devi sapere dove i tuoi dati (e nelle connessioni dei tuoi dati) hanno più valore. Se non lo sai ancora, probabilmente è meglio se scegli qualcosa che non ti dipinga in un angolo in futuro, e ti permetterà di aggiungere le funzionalità ed eseguire le operazioni di cui l'applicazione ha bisogno.