MongoDB 速習チュートリアル

MongoDB 入門ガイド

MongoDB はドキュメントデータベースであり、ローカル環境へのインストール、またはクラウド上でのホスティングが可能です。

1. SQL とドキュメントデータベースの比較

SQL データベースは「リレーショナルデータベース(関係データベース)」と呼ばれます。これらは関連するデータを個別の「テーブル」に保存します。データが必要なときは、複数のテーブルに対してクエリを実行し、データを「ジョイン(結合)」して元の形に戻します。

一方、MongoDB は「ドキュメントデータベース」であり、多くの場合「非リレーショナルデータベース」と呼ばれます。これはリレーショナルなデータをドキュメントデータベースに保存できないという意味ではありません。リレーショナルなデータの「保存方法が異なる」ということを意味します。より適切な呼び方は「非テーブル型(ノンタブラ)データベース」でしょう。

MongoDB はデータを「フレキシブルなドキュメント」として保存します。複数のテーブルに分ける代わりに、関連するすべてのデータを単一の場所にまとめて保持できます。これにより、データの読み取りが非常に高速になります。

もちろん、データのグループを複数持つことも可能です。MongoDB では、テーブルに相当するものは「コレクション」と呼ばれます。

2. ローカル vs クラウドデータベース

MongoDB はローカル環境にインストールでき、自身のハードウェア上で独自の MongoDB サーバーをホスティングできます。この場合、サーバーの管理、アップグレード、その他のメンテナンスをすべて自分で行う必要があります。

オープンソースの「MongoDB Community Server」をダウンロードして、自身のハードウェア上で無料で使用することが可能です。

しかし、本チュートリアルでは、クラウドデータベースプラットフォームである MongoDB Atlas を使用します。これは、独自のローカルデータベースをホスティングするよりもはるかに簡単です。

コード例を実際に試すには、MongoDB データベースへのアクセス権が必要です。まずは無料の MongoDB Atlas アカウントにサインアップして始めましょう。

3. クラスターの作成

アカウントを作成したら、無料の「Shared Cluster(共有クラスター)」をセットアップし、お好みのクラウドプロバイダーとリージョンを選択します。

デフォルトでは、MongoDB Atlas は完全にロックダウンされており、外部からのアクセスは一切許可されていません。
ユーザーをセットアップし、許可された IP アドレスのリストに自身の IP アドレスを追加する必要があります。

  1. 「Database Access」メニューから新しいユーザーを作成し、ユーザー名とパスワードを控えておきます。
  2. 次に「Network Access」メニューで、現在の IP アドレスを追加し、使用しているコンピュータからのアクセスを許可します。

4. MongoDB Shell (mongosh) のインストール

MongoDB データベースに接続する方法はたくさんあります。
ここではまず、MongoDB Shell である mongosh を使用することから始めましょう。

公式のインストール手順に従って、使用しているオペレーティングシステムに mongosh をインストールしてください。
正しくインストールされたか確認するには、ターミナルを開いて以下のコマンドを入力します。

# バージョンを確認する
mongosh --version

最新バージョンがインストールされていることが確認できるはずです。
このチュートリアルで使用しているバージョンは v1.3.1 です。

5. データベースへの接続

データベースに接続するには、そのデータベース専用の「接続文字列(コネクションストリング)」が必要です。

  1. MongoDB Atlas のダッシュボードの「Databases」セクションで、作成したクラスターの「Connect」ボタンをクリックします。
  2. 次に「Connect with the MongoDB Shell」を選択します。
  3. 接続文字列をコピーします。

5.1 接続例

接続文字列は以下のようになります。

# ターミナルで実行する接続コマンドの例
mongosh "mongodb+srv://cluster0.ex4ht.mongodb.net/myFirstDatabase" --apiVersion 1 --username あなたのユーザー名

コピーした接続文字列をターミナルに貼り付けて、Enter キーを押してください。
先ほど作成したデータベースユーザーのパスワード入力を求められます。

これで、データベースへの接続が完了しました!