MongoDBとは
MongoDBは、NoSQL(非関係型)データベースの一種です。従来の関係型データベース(例:MySQLやPostgreSQL)とは異なるアプローチを採用しており、非常に柔軟なデータモデルを提供します。
よくリレーショナルベータベースのPostgreSQLやMySQLなどと比較されますが、アプリケーションによってリレーショナルデータベースとMongoDBのようなNoSQLが適切であるか判断することが重要になります。
MongoDBの特徴
MongoDBは以下のような特徴を持っています:
- ドキュメント指向: MongoDBは、データをドキュメントとして格納します。ドキュメントは、キーバリューペアの集合であり、JSONのような形式で表現されます。例えば、顧客情報を表すドキュメントは、名前、メールアドレス、住所などのフィールドを持つことができます。
- スキーマの柔軟性: MongoDBは、ドキュメントのスキーマを事前に定義する必要がありません。ドキュメントは必要に応じてフィールドを追加・削除できます。これにより、アプリケーションの要件が変更された場合でも、データベースのスキーマ変更が容易になります。
- 水平スケーリング: MongoDBは、大量のデータを処理するために水平スケーリングをサポートしています。これは、複数のサーバーにデータを分散させることで、負荷を分散し性能を向上させる方法です。データの分散は、シャーディングと呼ばれます。
- クエリ言語: MongoDBは、強力なクエリ言語を提供しています。クエリは、検索条件を指定するだけでなく、ドキュメントのフィールド内の値の更新や集計操作も行えます。また、クエリの結果をソートや制限をかけて取得することも可能です。
- レプリケーションと冗長性: MongoDBは、データの冗長性を確保するためにレプリケーションをサポートしています。レプリケーションでは、データを複数のサーバーに複製することで可用性と信頼性を向上させます。
MongoDBは、スケーラビリティと柔軟性を重視するアプリケーションや、大量の非構造化データを扱う場合に特に有用です。ウェブアプリケーション、モバイルアプリケーション、IoT(モノのインターネット)などのさまざまな領域で広く利用されています。
MongoDBの短所
MongoDBは柔軟性や拡張性に優れたデータベースですが、すべてのアプリケーションに適しているわけではありません。以下にMongoDBを使うべきでないアプリケーションの例を挙げます:
- トランザクションが頻繁に行われるアプリケーション: MongoDBはACID(Atomicity、Consistency、Isolation、Durability)トランザクションをサポートしていますが、リレーショナルデータベース(RDBMS)に比べてトランザクションのパフォーマンスが劣る場合があります。高頻度のトランザクション処理が必要なアプリケーションでは、RDBMSの方が適している場合があります。
- 複雑なクエリと集計操作が頻繁に行われるアプリケーション: MongoDBは豊富なクエリ言語と集計フレームワークを提供していますが、非常に複雑なクエリや集計操作が頻繁に行われる場合、特に大量のデータを扱う場合には、他のデータベースソリューションがパフォーマンス上の利点を持つことがあります。
- 高度なリレーションシップと結合操作が必要なアプリケーション: MongoDBはドキュメント指向データベースであり、リレーションシップと結合操作をサポートしていますが、RDBMSのような関連テーブルと複雑な結合クエリの処理には向いていません。関連データの一貫性やパフォーマンスが重要な場合は、RDBMS(リレーショナルDB)が適しています。
- ストリクトなスキーマが必要なアプリケーション: MongoDBは柔軟なスキーマを持っており、ドキュメント内でフィールドの追加や変更が容易です。しかし、固定されたスキーマやデータの整合性が厳密に必要なアプリケーションには、RDBMS(リレーショナルDB)の方が適している場合があります。
これらは一般的なケースであり、MongoDBが適していないというわけではありません。最終的な選択は、アプリケーションの要件、データモデル、パフォーマンスの要件、チームの経験などを考慮することが大切になります。
MmongoDBをインストールしよう(Windows編)
- MongoDBの公式サイトのダウンロードページに行きます。
- “Community Server”の下にある”Download”ボタンをクリックします。
- msiファイルでダウンロードした場合はファイルを実行することでインストーラが開くので手順に沿ってインストールを進めていきます。
Nextを押します。

ライセンスを承認し、チェックボックスをクリックしてNext

セットアップの仕方はComplete(すべてのプログラムがインストールされる)方法とCustom(任意で選択)する方法があります。お好きなほうを選択してください。
例としてCompleteを選択します。

次にService Configrationでサービスとしてインストールするか確認します。ローカルで使いたい場合は簡単に設定できるのでチェックボックスを入れておいてもOKです。

次にMongoDB Compassをインストールするか聞かれます。これはMongoDBのUIなので是非インストールして使ってみてください。特に初めての人には分かりやすいはずです。下記の画像ではチェックを外してインストールをスキップしてしまいましたが後からインストールすることも可能です。

最後にインストールする確認のメッセージが表示されるので、問題がなければInstallボタンを押してインストールを開始します。
インストールが完了したあと、PCの再起動が必要になります。
再起動が終わった後にWindowsのサービスを見てください。
先ほどインストール時に設定したようにMongoDBのサービスが起動していることが分かりますね。

MongoDB Compassを使ってみる
ではMongoDBのGUI(グラフィックユーザーインターフェース)であるMongoDB Compassを起動してみましょう。
ConnectをクリックしてローカルのDBに接続します。

このように新しいデータベースを作成してコレクション(リレーショナルDBでいうテーブル)を作成してみましょう。

では試しにデータを作成してみましょう。

このようにidは自動で生成されますが、ストリングや数字のデータを好きなキー名で作成することができました。
更に同じことがコマンドラインからもできます。
次回はコマンドラインを使ってデータを操作する方法を紹介したいと思います。
お疲れ様でした。