Untuk kasus khusus Anda, MongoDB terdengar seperti pilihan yang baik, tetapi ada banyak skenario (mungkin sebagian besar dari mereka) di mana itu tidak akan menjadi pilihan terbaik.
MongoDB lebih cocok dalam skenario yang menuntut untuk membaca / menulis banyak data, tanpa banyak penekanan pada keamanan transaksi (jika beberapa data kadang-kadang hilang dalam server crash, itu bukan masalah besar), berharap untuk skala besar, dan jangan t benar-benar memiliki skema yang stabil.
MongoDB tidak cocok untuk skenario yang membutuhkan:
- Jaminan ACID yang kuat: MongoDB memungkinkan data duplikat disimpan, pembacaan tidak konsisten, dan bahkan kehilangan data. Hal-hal ini baik di beberapa aplikasi, tetapi tidak di sebagian besar.
- Transaksi Multi-Obyek: MongoDB mendukung transaksi ACID, tetapi hanya untuk satu objek / dokumen. Ini tidak akan memotongnya untuk operasi yang lebih kompleks seperti transfer bank, membuat reservasi, dll.
- BI Tradisional: ada banyak alat BI di luar sana yang hanya cocok dengan SQL tradisional.
- SQL: MongoDB memiliki bahasa query yang sangat spesifik, sedangkan SQL sangat dikenal oleh banyak orang (mungkin merupakan aspek penting untuk dipertimbangkan), dapat melakukan banyak hal kompleks (sedangkan dengan MongoDB Anda akan kesulitan melakukan yang sederhana bergabung) dan dapat ditransfer di banyak implementasi.
MongoDB lebih cepat dan akan memungkinkan Anda untuk meningkatkan kinerja lebih dari sistem dengan menghilangkan banyak hal yang RDBMS terapkan secara default, seperti pemeriksaan integritas (catat bahwa Anda juga dapat mengubah RDBMS untuk tujuan seperti itu), tetapi kenyataannya adalah, dalam kebanyakan skenario, itu tidak diperlukan. Plus, trade-off adalah keandalan dan fleksibilitas (Anda akan mengalami kesulitan jika, nanti, Anda memutuskan untuk melakukan operasi yang lebih kompleks dengan data yang ada).
Itu semua tergantung pada kebutuhan aplikasi yang Anda bangun. Apakah itu kecepatan dan ketersediaan, atau keamanan, keandalan, dan fleksibilitas. Anda harus tahu di mana di data Anda (dan di koneksi data Anda) terletak nilai lebih. Jika Anda belum tahu, mungkin yang terbaik adalah jika Anda memilih sesuatu yang tidak akan membuat Anda kesal di masa depan, dan akan memungkinkan Anda untuk menambahkan fitur dan melakukan operasi yang dibutuhkan aplikasi Anda.