従来、データベースと言えばわかりやすい表形式でデータを管理できるRDB(リレーショナルデータベース)が最もよく使われていました。現在でもRDBの採用率が高いことは変わりませんが、データベースに求められる役割が増えたことでRDBが適さないシーンも多くなっています。

MongoDBは、そのようなRDBが対応できないシーンで特によく使われるデータベースの1つです。この記事ではMongoDBの概要や主な特徴・メリット、利用時の注意点についてわかりやすく解説します。その上で、インストール方法や学習方法も紹介しているので、これからMongoDBを学ぼうと検討されている方は是非参考にして下さい。
目次 [非表示]
MongoDBとは?【代表的なNoSQLデータベースの1つ】
MongoDBは、代表的なNoSQLデータベース・ドキュメント指向型データベースです。MongoDBはMongoDB社が開発し、オープンソースとして提供されています。
Google社やAmazon社が提供するクラウドサービスでMongoDB互換のデータベースが展開されるなど、MongoDBは多くの名だたる企業に採用されている状況です。
またMongoDBは「MEANスタック」など、Webアプリケーションを開発する際に使われるオープンソースの組合せにもよく採用されています。Webアプリケーションの開発現場でも、MongoDBの採用率が高くなっているのです。

Webアプリケーション開発において、これまでよく使われてきたLAMPに代わって注目されているのが「MEANスタック」です。この記事では多くの企業が採用しているMEANスタックとは何かや、MEANスタックを構成する要素、主な特徴について解説しています。あわせてインストール方法も解説しているので、これからMEANスタックを学習されようとしている方は是非参考にして下さい。 MEANスタックとは MEAN…
そもそもNoSQLとは?ドキュメント指向とは?
それでは、そもそもNoSQLやドキュメント指向型のデータベースとはどういったものでしょうか。MongoDBの特徴について詳しくみていくにあたり、簡単に振り返っておきましょう。
まずNoSQLとは、リレーショナルデータベース(RDB)以外のデータベースを指す総称です。RDBはわかりやすい表形式でデータの管理が可能で、従来からデータベースとしてよく使われてきました。
しかしRDBは、IoTやAI技術の発展に伴い近年注目されているビッグデータの処理に必ずしも適しているとは言えません。RDBはデータの交通整理を厳密に行い一貫性を保持する分、ビッグデータのように膨大なデータを扱うシーンでは処理速度が遅くなります。またビッグデータに含まれる、非構造化・半構造化データ(表形式のように整形されていないデータ)をRDBでは扱えません。
そこで注目されているのがNoSQLです。NoSQLはRDBのようなデータの交通整理を行わない分、データをより高速に処理できます。NoSQLであれば、非構造化・半構造化データの処理も可能です。
そうして、MongoDBはNoSQLのなかでも代表的な存在と言えます。MongoDBはドキュメント指向のデータベースで、様々なデータを柔軟に扱うことが可能です。ドキュメント指向データベースとは、ドキュメントの形式でデータを管理するデータベースを指します。ドキュメント形式のデータベースでは、ドキュメントごとに異なる形式のデータを保存することもできます。
※NoSQLについてより詳しく知りたい場合は、以下記事を参考にして下さい。

【図解】NoSQLとは?注目される背景や種類をわかりやすく解説
従来から使われているリレーショナルデータベース(RDB)は、膨大で多様なビッグデータの処理に適していないと言われています。RDBにかわり昨今注目を集めているのがNoSQLです。 それではなぜ、ビッグデータの処理には、NoSQLの方が適しているのでしょうか。本記事ではNoSQLとは何かや、RDBとの違い、NoSQLが注目される背景や種類について解説しています。 NoSQLとは「RDBではないデータベ…
MongoDBの主な特徴・メリット
MongoDBは、NoSQLのなかでも最もよく使われるデータベースの1つです。それでは、どのような理由でMongoDBが注目されるのでしょうか。ここではMongoDBの主な特徴・メリットをみていきましょう。
インメモリで動作するため処理速度が速い
MongoDBは、データをメインメモリ(RAM)で読み込んでから処理するインメモリ型のデータベースです。そのため処理すべきデータ量が増えても、よりスピーディーにI/O処理を行えます。
負荷分散や冗長化を実現する仕組みがある
MongoDBは、データを複数のサーバーに分割して保存・処理できる「シャーディング」という機能を備えています。そのため負荷を複数のサーバーに分散して全体としての処理能力を向上させることが可能です。
さらにMongoDBには、「レプリカセット」といって、3台以上のサーバーで常に同じデータを保存・管理する機能もあります。レプリカセット機能によって、MongoDBはサーバーの冗長化も実現可能です。
外部システムとの連携が容易
MongoDBは様々なシステムが採用する「JSON※」に似た形式でデータを保存します。そのため外部のシステムと比較的容易に連携可能です。
JSONとは「JavaScript Object Notation」を略した言葉で、JavaScriptでデータを扱うときのフォーマットです。JavaScriptがいろいろなシステムで採用されていることから、JSON形式でデータを保存するシステムも多くなっています。
複雑な形式のデータを扱いやすい
MongoDBはJSONに似た形式のドキュメントでデータを保存・処理することから、複雑な形式のデータを扱いやすい点もメリットです。ドキュメント形式なので、動的かつ柔軟に扱うデータの形式を変えることもできます。
MongoDBを使うときの注意点
NoSQLのMongoDBは、RDBのようにデータの一貫性を厳密に保持しようとはしません。そのため特にデータの一貫性が重要なシステムでは、MongoDBは不向きです。
またMongoDBは、RDB用として広く普及しているデータベース言語「SQL」を使うことができません。MongoDBでは専用のデータベース言語によってデータを管理します。
MongoDBはバージョン4.0まで、複数の処理をひとまとめにして一貫性をもったかたちで実行する「トランザクション」機能がありませんでした。しかしバージョン4.0からは、マルチトランザクション機能を実装しています。
MongoDBのインストール方法
ここではWindows10にMongoDBをインストールする方法を紹介します。
1)以下、公式サイトからインストーラをダウンロードします。
https://www.mongodb.com/try/download/community
サイトへアクセスし、「ダウンロード」ボタンをクリックして下さい。
このとき、ダウンロードするMongoDBのバージョン番号を確認しておきます。
(バージョン番号はあとで利用します。記載したキャプチャでは「5.0」です。)

2)ダウンロードが完了したらインストーラのファイルをダブルクリックします。
3)インストール画面が表示されるため、「Next」をクリックし、次へ進みます。

4)ライセンスへの同意を求められるので、内容を確認の上「I accept…」にチェックを入れ「Next」をクリックします。

5)「Choose Setup Type」画面が表示されたら、「Complete」を選択の上、「Next」をクリックします。

6)「Service Configuration」が表示されたら、以下2点を確認し「Next」をクリックします。
- 「Install MongoDB as a Service」にチェックが入っている
- 「Run service as Network Service user」が選択されている

7)「Install MongoDB ComPass」画面が表示されたら「Install MongoDB Compass」にチェックが入っていることを確認の上、「Next」をクリックします。

8)次の画面で「Install」をクリックします。これでインストール作業は完了です。完了画面が表示されたら「Finish」をクリックして画面を閉じてください。

9)インストール完了後、mongoDBを起動するためにはPATHを通す必要があります。
Windows10の検索ボックスで「cmd」と入力しコマンドプロンプトを起動させたあと、以下コマンドを実行して下さい。
set PATH=%PATH%;C:\Program Files\MongoDB\Server\5.0\bin\
※途中の数字(上記であれば「5.0」)部分には、先ほど確認したmongoDBのバージョン番号を入力する必要があります。
10)コマンドプロンプトで以下コマンドを実行し、mongoDBを起動します。
mongo
MongoDBが起動し、バージョン情報などが表示されます。
MongoDBの学習に役立つWebサイト・書籍
MongoDBはWebサイトや書籍を使って詳しく学ぶことができます。ここではなかでもおすすめのWebサイトや書籍を紹介するので参考にして下さい。
- 【Webサイト】ドットインストール
1回3分の動画で、手軽にMongoDBについて学べるサイトです。全て視聴するためには有料会員になる必要があります。
https://dotinstall.com/lessons/basic_mongodb_v3#!lessons - 【Webサイト】Udemy
Udemyは、様々なジャンルのオンライン学習講座が集まるプラットフォームです。MongoDBに関しても、基本的な講座から実践的な講座まで幅広く公開されています。
https://www.udemy.com/courses/search/?src=ukw&q=MongoDB - 【書籍】MongoDB 解体新書
MongoDBとは何かといった概要から、基本的な設定方法・操作方法まで初心者の方でもわかりやすくまとめた書籍です。
https://onl.tw/Hpdmi5K - 【書籍】RDBエンジニアでもできる!MongoDBの構築と運用入門
こちらはRDBを使ったことがある人向けにまとめられた、MongoDBの構築と運用に関する入門書です。MongoDBの概要から、構築・構築後の運用手順まで一通り解説してあります。
https://onl.tw/Y2VU8nq
まとめ
MongoDBは代表的なNoSQLデータベースの1つです。MongoDBは「MEANスタック」のような、Javaスクリプトのフルスタック開発環境でもよく採用されています。
MongoDBはインメモリで動作するためI/Oの処理速度が速い上に、負荷分散や冗長化を比較的容易に実現可能です。またJSONに近い形式でデータを保存することから、外部システムと連携させやすいのも大きなメリットと言えます。
一方でRDBのように厳密にデータの一貫性を保持しようとしないため、システムによっては適していません。MongoDBを使う際は、適正をよく確かめる必要があります。
開発・検証・プログラミング学習に。無駄なコストもかけたくないあなたにおすすめのVPS
カゴヤのVPSは初期費用無料でアカウント登録さえしておけば、必要なときだけ日額課金でサーバーを立ち上げ可能!料金は使った分だけ。
