概要
MongoDBは、ドキュメント指向のNoSQLデータベースです。
従来のリレーショナルデータベース(RDB)と異なり、
表(テーブル)ではなく「ドキュメント(JSON形式のようなデータ)」を保存します。
大量のデータや柔軟なデータ構造を扱うのに適しており、スケーラビリティやパフォーマンスに優れています。
正式名称
MongoDB(モンゴデービー)
※「Mongo」は「humongous(とてつもなく大きい)」から来ています。
略称
Mongo(モンゴ)
特徴
- ドキュメント指向:JSONに似たBSON形式でデータを保存
- スキーマレス:テーブルの列の定義が不要。データ構造が柔軟
- 高速な読み書き性能:特に大規模なデータ操作で有利
- 高いスケーラビリティ:分散構成(シャーディング)に強い
- 豊富なクエリ機能:複雑な検索や集計も可能(Aggregation Framework)
- オープンソース:無料で利用可能(商用サポートもあり)
- 公式ドライバが豊富:Node.js、Python、Javaなど多くの言語に対応
具体例
例えば、ユーザー情報を保存する場合、RDBではこんな形になります
リレーショナルDB(MySQLなど)の例
id | name | age |
---|---|---|
1 | 山田太郎 | 30 |
MongoDBでの保存例(JSON風)
{
"_id": 1,
"name": "山田太郎",
"age": 30
}
MongoDBでは、このようにオブジェクトそのもののような形式で保存され、項目(フィールド)も自由に追加・変更できます。
関連用語
用語 | 解説 |
---|---|
NoSQL | 「Not Only SQL」。非リレーショナル型のデータベース群 |
BSON | Binary JSON。MongoDBが内部的に使用するデータ形式 |
ドキュメント | 1件のデータを表す単位。JSON形式に似た構造 |
コレクション | 複数のドキュメントをまとめたもの。RDBでいう「テーブル」に相当 |
スキーマレス | データの型や構造の事前定義が不要 |
シャーディング | データを複数のサーバーに分散して保存する仕組み(分散データベース) |
レプリカセット | データのコピーを複数保持し、可用性を高める仕組み |