NoSQLデータベース

MongoDB もんごでぃーびー

MongoDBドキュメントDBNoSQLJSONBSONスキーマレス
MongoDBって普通のDBと何が違うの?

簡単に言うとこんな感じ!

MongoDBはJSONみたいな形でデータを保存する「ドキュメントDB」だよ!普通のDBがExcelの表みたいな形でデータを入れるのに対し、MongoDBはネストした構造(入れ子)でそのまま保存できるんだ。スキーマ(定義)を事前に決めなくていい柔軟さが特徴だよ。


MongoDBとは

MongoDB は、データをJSONに似た形式(BSON:Binary JSON)の「ドキュメント」として保存する、オープンソースのドキュメント指向NoSQLデータベースです。2009年にリリースされ、NoSQLの代表格として広く普及しています。

リレーショナルDBのテーブル=行・列の構造と異なり、MongoDBはコレクション(テーブルに相当)の中にドキュメント(行に相当)を格納し、各ドキュメントは自由に構造を変えられます。


MongoDBの基本概念

RDBの概念MongoDBの対応概念
データベースデータベース
テーブルコレクション
行(レコードドキュメント
列(カラム)フィールド
主キー_id フィールド
JOIN$lookup(集計パイプライン)

ドキュメント例

{
  "_id": "ObjectId('...')",
  "name": "山田太郎",
  "email": "yamada@example.com",
  "orders": [
    { "product": "ノートPC", "price": 120000 },
    { "product": "マウス",   "price": 3000 }
  ],
  "address": {
    "city": "東京",
    "zip": "100-0001"
  }
}

RDBでは注文をordersテーブルに分けてJOINするが、MongoDBでは埋め込みドキュメントで一括管理可能。


MongoDBが適するケース

  • データ構造が頻繁に変わるアジャイル開発初期
  • ユーザーごとに異なる属性を持つコンテンツ(ECサイトの商品カタログ等)
  • JSONそのままで保存・取得したいWebAPI開発
  • リアルタイムデータ分析・集計

歴史と背景

  • 2009年:MongoDB Inc.(旧10gen)がMongoDBをリリース
  • 2010年代:MEAN/MERNスタック(MongoDB・Express・Angular/React・Node.js)で普及
  • 2021年:MongoDB AtlasがフルマネージドDBaaSとして急成長

関連用語