お問い合わせはこちら

【初心者向け】MongoDBとは?メリット・基本をわかりやすく解説

公開
更新

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

MongoDB

MongoDBは、そのようなRDBが対応できないシーンで特によく使われるデータベースの1つです。この記事ではMongoDBの概要や主な特徴・メリット、利用時の注意点についてわかりやすく解説します。その上で、インストール方法や学習方法も紹介しているので、これからMongoDBを学ぼうと検討されている方は是非参考にして下さい。

MongoDBとは?【代表的なNoSQLデータベースの1つ】

MongoDBは、代表的なNoSQLデータベース・ドキュメント指向型データベースです。MongoDBはMongoDB社が開発し、オープンソースとして提供されています。

Google社やAmazon社が提供するクラウドサービスでMongoDB互換のデータベースが展開されるなど、MongoDBは多くの名だたる企業に採用されている状況です。

またMongoDBは「MEANスタック」など、Webアプリケーションを開発する際に使われるオープンソースの組合せにもよく採用されています。Webアプリケーションの開発現場でも、MongoDBの採用率が高くなっているのです。

そもそもNoSQLとは?ドキュメント指向とは?

それでは、そもそもNoSQLやドキュメント指向型のデータベースとはどういったものでしょうか。MongoDBの特徴について詳しくみていくにあたり、簡単に振り返っておきましょう。

まずNoSQLとは、リレーショナルデータベース(RDB)以外のデータベースを指す総称です。RDBはわかりやすい表形式でデータの管理が可能で、従来からデータベースとしてよく使われてきました。

しかしRDBは、IoTやAI技術の発展に伴い近年注目されているビッグデータの処理に必ずしも適しているとは言えません。RDBはデータの交通整理を厳密に行い一貫性を保持する分、ビッグデータのように膨大なデータを扱うシーンでは処理速度が遅くなります。またビッグデータに含まれる、非構造化・半構造化データ(表形式のように整形されていないデータ)をRDBでは扱えません。

そこで注目されているのがNoSQLです。NoSQLはRDBのようなデータの交通整理を行わない分、データをより高速に処理できます。NoSQLであれば、非構造化・半構造化データの処理も可能です。

そうして、MongoDBはNoSQLのなかでも代表的な存在と言えます。MongoDBはドキュメント指向のデータベースで、様々なデータを柔軟に扱うことが可能です。ドキュメント指向データベースとは、ドキュメントの形式でデータを管理するデータベースを指します。ドキュメント形式のデータベースでは、ドキュメントごとに異なる形式のデータを保存することもできます。

※NoSQLについてより詳しく知りたい場合は、以下記事を参考にして下さい。

【図解】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とは

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」です。)

MongoDBのインストール

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を使う際は、適正をよく確かめる必要があります。