トランザクションが必要なアプリケーション(アトミックなバッチ操作のすべてまたは何もない)があり、複数のインスタンスにわたってデータベースを拡張したくない場合は、Mongodbを使用せずにSQLデータベースシステムを使用します。
Mongodbは通常、一部のスキーマを尊重しないDataのデータベースとして使用されますが、SQLデータベースシステムはスキーマを必要とし、データベースに保存する前にデータを検証するレイヤーを提供します。
ドキュメント(Mongodb行のバージョン)を扱うときには、他のドキュメントとの関連付けを行う際にいくつかのトリックがありますが、通常はいくつかの正規化ルールに従わず、ドキュメントから読むときに必要なものに依存します。 コレクションAのドキュメントとコレクションBのドキュメントとの関係がある場合、別のドキュメントからの読み取りを避けるために、参照ID(外部キー)、ドキュメント全体、または外部キーと必要なフィールドを追加できます。
Mongodbには、異なるホストに存在する異なるノードに格納された膨大なデータセットに対する演算処理を行うためのbultin機能である集約フレームワークもあります。 データが非常に多く、SQLデータベースの規模を拡大する場合は、すべてのデータを単一のホストまたは同じネットワークに格納する必要があります。したがって、垂直方向に拡大縮小する必要があります。 Mongodbを使用すると、多くのコモディティハードウェアでデータを拡大することができます。
Mongodbアーキテクチャといえば、Mongodbはスケージビリティを提供します。Mongodbはシャーディングシステムを提供します。レプリカセットシステムのおかげで、プライマリノードが書き込み可能なだけで、セカンダリノード(読み取りのみ)が1つのノードを選択するようになるたびに、インスタントリカバリで高可用性を実現します。
最も重要なことは、保存しようとしているデータの種類を覚えておくことです。データに安定したスキーマがなく、トランザクション(非常に重要)がある場合は、mongodbを使用しないでください。
両方のデータベースシステムをそれぞれ必要なものに使用できることを忘れないでください。
あなたが言ったように、あなたは片側しか見ていません。あなたが知っている限り、あなたは悪い技術を選んだかもしれません。しかし、リレーショナルデータベースが何をすることができるのか分からなければ、どうすればよいでしょうか?リレーショナル・ワールドでも経験を積む必要があります。 (このアプリをビルドしてからmysqlなどで再構築してください)そうでなければ、実際にそれらのことが真実であるかどうかを知ることなく、インターネット上で聞いたことを覚えているだけなので、 "mongodbの使用を正当化できません"ない。 –
あなたはもう一方のことを知らずにもう一方のものよりも優れていると主張しようとしています。それはばかげている。 (そしてそれが価値あるものについては、MongoDBは正当ではありません。) – Ryan