あなたの特定の場合、MongoDBは良い選択のように思えますが、最良の選択ではないシナリオ(おそらくそれらのほとんど)がたくさんあります。
MongoDBは、トランザクションの安全性をあまり重視せずに大量のデータの読み取り/書き込みを必要とするシナリオに適しています(サーバークラッシュでデータが時々失われる場合、それは大したことではありません)。本当に安定したスキーマがあります。
MongoDBは、以下を必要とするシナリオには適していません。
- ACIDの強力な保証:MongoDBでは、重複データの保存、一貫性のない読み取り、さらにはデータ損失が可能です。これらのことは一部のアプリケーションでは問題ありませんが、ほとんどのアプリケーションではうまくいきません。
- マルチオブジェクトトランザクション:MongoDBはACIDトランザクションをサポートしますが、単一のオブジェクト/ドキュメントに対してのみです。これは、銀行振込、予約などのより複雑な操作のためにそれをカットしません。
- 従来のBI:従来のSQLでしかうまく機能しないBIツールがたくさんあります。
- SQL:MongoDBには非常に特殊なクエリ言語がありますが、SQLは多くの人によく知られています(考慮すべき重要な側面かもしれません)が、多くの複雑なことを行うことができます(一方、MongoDBでは、単純な参加)多くの実装間で転送可能です。
MongoDBは高速であり、整合性チェックなどのようにRDBMSがデフォルトで実施する多くのものを排除することにより、システムからより多くのパフォーマンスを引き出すことができます(とにかくそのような目的のためにRDBMSを調整することもできます)ほとんどのシナリオでは、必要ありません。さらに、トレードオフは信頼性と柔軟性です(後で、既存のデータを使用してより複雑な操作を行う必要があると判断した場合、問題が発生します)。
それはすべて、構築するアプリケーションのニーズに依存します。速度と可用性、または安全性、信頼性、柔軟性です。データ(およびデータの接続)のどこに価値があるかを知る必要があります。まだわからない場合は、将来あなたを隅に追いやることがなく、アプリケーションに必要な機能を追加して操作を実行できるものを選択するのがおそらく最善です。