MongoDB(モンゴDB)とは、「ドキュメント」と呼ばれる、JSONに似た柔軟な形式でデータを保存する、代表的なNoSQLデータベースのことです。あらかじめ表の形式を細かく決めておく必要がある一般的なデータベースとは異なり、項目の増減に柔軟に対応できる点が特徴です。
現実世界に例えると、MongoDBは自由な形式で書けるメモ帳のようなものです。決まった様式の伝票では書ける項目が限られますが、メモ帳であれば人によって書く内容や量が違っても、それぞれをそのまま保存できます。
MongoDBの仕組み
MongoDBでは、データはひとつずつ「ドキュメント」という単位で保存され、関連するドキュメントの集まりを「コレクション」と呼びます。それぞれのドキュメントは、項目の数や種類が異なっていても構わないため、扱うデータの形が定まっていない場合や、途中で変化する場合にも対応しやすくなっています。
RDBとの違い
| 項目 | RDB | MongoDB |
|---|---|---|
| データの単位 | 行と列を持つ表 | 柔軟な構造のドキュメント |
| 構造の決めやすさ | 事前にきっちり設計 | 後からの変更に柔軟 |
| 得意な処理 | 複雑な関連付けと整合性 | 大量データの高速な読み書き |
MongoDBが向いている用途
ログデータの蓄積や、SNSの投稿内容のように利用者ごとに項目の数が異なる情報を扱う場面、また、アクセス数の急増に備えて複数のサーバーへ処理を分散させたい場面などで、MongoDBの柔軟さと拡張のしやすさが活かされます。
スケールアウトのしやすさ
MongoDBは、あらかじめ複数のサーバーへデータを分散して保存する「シャーディング」という仕組みを備えています。データ量が増えてきた際にサーバーを追加するだけで対応しやすく、大規模なサービスでも扱いやすい設計になっています。
使う際の注意点
構造を厳密に決めずに済む反面、データの整合性を保つ仕組みは自分たちで意識して設計する必要がある場合があります。用途によってはRDBのほうが適していることもあるため、扱うデータの性質に応じて使い分けることが大切です。
他のNoSQLとの位置づけ
NoSQLと一口に言っても、データの持ち方によっていくつかの種類に分かれます。MongoDBはその中でも「ドキュメント指向」と呼ばれる分類に属しており、比較的複雑な構造のデータを扱いやすい点が特徴です。
あわせて知っておきたい用語
- NoSQL(Not only SQL/ノーエスキューエル):
表形式にとらわれない、柔軟な構造を持つデータベースの総称です。 - RDB(リレーショナルDB):
表の形でデータを管理する、従来から広く使われるデータベースです。 - JSON:
データをやり取りする際によく使われる、軽量なデータ形式です。 - スケーラビリティ:
データ量や利用者数の増加に応じて拡張できる能力のことです。 - シャーディング:
データを複数のサーバーに分散して保存する仕組みです。 - ドキュメント指向データベース:
柔軟な形式のドキュメント単位でデータを扱うデータベースの分類です。

コメント