2017-08-18 8 views
-4

私は完全なスタック開発には新しく、Webアプリケーション用のMongoDBの使用を正当化する助けが必要です。私はまた、アプリケーションデータをモデル化するために、mongooseとそのスキーマベースのソリューションを使用します。MongoDBの使用を正当化

ギャラリーからアートプロジェクトを表示するシンプルなウェブアプリ(ウェブサイト)を作成しました。開発中、私はスキーマに追加のフィールドが必要であることを絶えず発見していました。 MongoDBは非常に柔軟性があり、スキーマを動的に変更できるので、これは非常に便利です。

私が非常に魅力的だと感じるもう一つの点は、MonogDBは、人間や機械が読めるJavaScript Object Notation(JSON)を使用していることです。

私はリレーショナルデータベース管理システムとリレーショナルデータベースについてよく知らないので、他のデータベースと比較してMongoDBを使用するメリットとして何を述べるべきではありません。

助けてください。

+3

あなたが言ったように、あなたは片側しか見ていません。あなたが知っている限り、あなたは悪い技術を選んだかもしれません。しかし、リレーショナルデータベースが何をすることができるのか分からなければ、どうすればよいでしょうか?リレーショナル・ワールドでも経験を積む必要があります。 (このアプリをビルドしてからmysqlなどで再構築してください)そうでなければ、実際にそれらのことが真実であるかどうかを知ることなく、インターネット上で聞いたことを覚えているだけなので、 "mongodbの使用を正当化できません"ない。 –

+2

あなたはもう一方のことを知らずにもう一方のものよりも優れていると主張しようとしています。それはばかげている。 (そしてそれが価値あるものについては、MongoDBは正当ではありません。) – Ryan

答えて

-1

MongoDBでは、データは表形式では格納されません。それらは文書として表されます。簡単に言えば、情報を更新または変更する必要がある場合、多くの時間を節約できます。 MySqlでは、小さなものごとに別々のクエリを書く必要があります。しかしここでは、非常に短い時間で動的にデータを変更できます。 MongoDBでは、あらゆるタイプのデータを保存できます。それらにも簡単にアクセスできます。これは、最も急速に成長しているデータベースです。

MongoDBは、に参加しません。操作ではなく、多次元データ型を使用します。 トランザクションロールバック(以前のトランザクションに戻る能力)もサポートされていません。 大量または大量のデータに対処する必要がある場合は、MongoDBを使用する方がよいでしょう。 MySqlの欠点は、データを表形式で格納することであり、これは有効ではありません。その欠点はMongoDBによって克服されています。

+1

あなたの説明は非常に曖昧です。また、MongoDBとMySQLだけを比較する理由は何ですか?そこには多くのリレーショナルデータベースがありますが、MySQLは確かに最高でも最速でもありません。 StackOverflowのようなデータコンテキストはSQL Server上に構築されており、非常に急速に変化し、膨大な量のデータを持ち、世界中の情報を広げています。それにもかかわらず、それは非常に効率的かつ高速です。また、今日では、コード内のクラスを変更するのと同じくらい速く、データベース構造をすばやく変更できる高度なORMが多数存在するため、これはMongoDBの大きな利点ではありません。 –

1

トランザクションが必要なアプリケーション(アトミックなバッチ操作のすべてまたは何もない)があり、複数のインスタンスにわたってデータベースを拡張したくない場合は、Mongodbを使用せずにSQLデータベースシステムを使用します。

Mongodbは通常、一部のスキーマを尊重しないDataのデータベースとして使用されますが、SQLデータベースシステムはスキーマを必要とし、データベースに保存する前にデータを検証するレイヤーを提供します。

ドキュメント(Mongodb行のバージョン)を扱うときには、他のドキュメントとの関連付けを行う際にいくつかのトリックがありますが、通常はいくつかの正規化ルールに従わず、ドキュメントから読むときに必要なものに依存します。 コレクションAのドキュメントとコレクションBのドキュメントとの関係がある場合、別のドキュメントからの読み取りを避けるために、参照ID(外部キー)、ドキュメント全体、または外部キーと必要なフィールドを追加できます。

Mongodbには、異なるホストに存在する異なるノードに格納された膨大なデータセットに対する演算処理を行うためのbultin機能である集約フレームワークもあります。 データが非常に多く、SQLデータベースの規模を拡大する場合は、すべてのデータを単一のホストまたは同じネットワークに格納する必要があります。したがって、垂直方向に拡大縮小する必要があります。 Mongodbを使用すると、多くのコモディティハードウェアでデータを拡大することができます。

Mongodbアーキテクチャといえば、Mongodbはスケージビリティを提供します。Mongodbはシャーディングシステムを提供します。レプリカセットシステムのおかげで、プライマリノードが書き込み可能なだけで、セカンダリノード(読み取りのみ)が1つのノードを選択するようになるたびに、インスタントリカバリで高可用性を実現します。

最も重要なことは、保存しようとしているデータの種類を覚えておくことです。データに安定したスキーマがなく、トランザクション(非常に重要)がある場合は、mongodbを使用しないでください。

両方のデータベースシステムをそれぞれ必要なものに使用できることを忘れないでください。

関連する問題