Для вашого конкретного випадку MongoDB здається хорошим вибором, але існує маса сценаріїв (можливо, більшість із них), де це було б не найкращим вибором.
MongoDB більше підходить для сценаріїв, які вимагають зчитувати / записувати багато даних, без особливого акценту на безпеці транзакцій (якщо деякі дані час від часу втрачаються при збої на сервері, це не є великою справою), очікуйте, що масштаб буде масштабним і не ставте ' t дійсно має стабільну схему.
MongoDB не підходить для сценаріїв, які вимагають:
- Сильні гарантії кислотної кислоти: MongoDB дозволяє зберігати дублікати даних, непослідовні зчитування та навіть втрату даних. У деяких програмах такі речі добре, але в більшості.
- Багатооб'єктні транзакції: MongoDB підтримує транзакції ACID, але лише для одного об'єкта / документа. Це просто не скоротить це для складніших операцій, таких як банківські перекази, бронювання тощо.
- Традиційний BI: є багато інструментів BI, які добре грають лише з традиційними SQL.
- SQL: MongoDB має дуже специфічну мову запитів, тоді як SQL дуже добре відомий багатьма людьми (це може бути важливим аспектом для розгляду), може робити багато складних речей (тоді як з MongoDB у вас виникнуть проблеми із виконанням простого приєднатись) і може бути передано у багатьох реалізаціях.
MongoDB швидше і дозволить вам досягти більшої продуктивності в системі, усуваючи багато матеріалів, які RDBMS застосовують за замовчуванням, як-от перевірки цілісності (зауважте, що ви також можете налаштувати RDBMS для таких цілей), але правда, у більшості сценаріїв це просто не потрібно. Крім того, компроміс - це надійність та гнучкість (у вас виникнуть проблеми, якщо згодом ви вирішите, що вам потрібно зробити більш складні операції з наявними даними).
Все залежить від потреб програми, яку ви будуєте. Це швидкість та доступність чи безпека, надійність та гнучкість. Ви повинні знати, де у ваших даних (і в з'єднаннях ваших даних) лежить більше значення. Якщо ви ще не знаєте, це, мабуть, найкраще, якщо ви виберете щось, що не забарвить вас у кут у майбутньому, і дозволить вам додати функції та виконати операції, необхідні вашій програмі.