MongoDB (2009年)(モンゴディービー)
MongoDB は2009年2月10gen (Dwight Merriman・Eliot Horowitz・Kevin Ryan・後MongoDB Inc. 改名 2013年) が開発したオープンソースDocument DB で「Humongous」(巨大) から命名・JSON ライクなBSON (Binary JSON) ・Sharding・Replica Set・Atlas Cloud (2016年-)採用しNoSQL の代表的DB として2024年Stack Overflow Survey で5位採用された現代NoSQL DB の主流。
MongoDB (2009年)
概要
MongoDB は2009年2月11日10gen (Dwight Merriman・Eliot Horowitz・Kevin Ryan 共同創業・元DoubleClick 創業メンバー・後MongoDB Inc. 改名 2013年8月・2017年NASDAQ IPO) が開発したオープンソースDocument DB で「Humongous」(巨大) から命名・JSON ライクなBSON (Binary JSON) データ形式・Sharding (水平スケーリング)・Replica Set (高可用性・自動フェイルオーバー)・Atlas Cloud (2016年-・マネージドサービス)・Aggregation Framework (集計クエリ)・GridFS (ファイル分散保存)・MongoDB Realm (旧 Realm 2019年買収・モバイル DB)・MongoDB Compass (GUI ツール) 採用しNoSQL の代表的DB として2024年Stack Overflow Survey で5位採用 (29%) された現代NoSQL DB の主流。MongoDB 8.0 (2024年9月最新) と継続改良・SSPL ライセンス (2018年-・元GPL から変更で論争)・Atlas (2024年売上$1.8B+ ・MongoDB Inc. の主要収益源)。
主な特徴・仕組み
- 発表: 2009年2月11日10gen (後MongoDB Inc.)
- 創業者: Dwight Merriman (元DoubleClick CTO)・Eliot Horowitz (元DoubleClick 創業メンバー)・Kevin Ryan (元DoubleClick CEO)
- 言語: C++ 実装
- 対応OS: 全主要Linux・macOS・Windows
- ライセンス: SSPL (Server Side Public License・2018年10月変更・元AGPL)
- データ形式: BSON (Binary JSON・JSON のバイナリ形式)
- 特徴: Document DB・JSON ライク・Sharding・Replica Set・Aggregation Framework
- 主要バージョン: 1.0 (2009年8月)・2.0 (2011年9月・Sharding)・3.0 (2015年3月・WiredTiger エンジン)・4.0 (2018年6月・トランザクション)・5.0 (2021年7月・Time Series)・8.0 (2024年9月最新)
10gen と MongoDB の物語
NoSQL の旗手:
- 2007年Dwight Merriman・Eliot Horowitz・Kevin Ryan: 元DoubleClick (1996-2008年Google 買収) の共同創業メンバー・データ管理経験
- 2009年MongoDB 開発開始: Web アプリ用の柔軟なDB を目指す
- 2009年2月11日MongoDB 1.0 オープンソース公開
- 2013年8月10gen→MongoDB Inc. 改名: 製品名と社名統一
- 2017年10月NASDAQ IPO: ティッカー「MDB」・上場価格$24・初日$33 (38%上昇)
- 2024年現在: 時価総額$25B+・売上$2B+・主要収益はAtlas Cloud
- 創業者現状: Eliot Horowitz は2020年退任・現Verb Data 創業者
BSON (Binary JSON) 革新
MongoDB のデータ形式:
- 動作: JSON のバイナリ形式・型情報拡張 (Date・ObjectId・Binary 等)
- メリット: 高速パース・コンパクト・型安全
- 競合: PostgreSQL JSONB (2014年・後発)・SQL Server JSON (2016年)
- 後継: MongoDB の標準ストレージ形式・全Driver で BSON 採用
Sharding (水平スケーリング)
MongoDB の分散戦略:
- 動作: データを複数Shard (シャード) に分散保存・水平拡張
- Shard Key: パーティション分散キー (例: User ID・地理位置)
- 競合: Cassandra (Consistent Hashing 自動分散)・MongoDB は手動Shard Key 設計
- 採用: 大規模MongoDB (10億+ ドキュメント) で必須
- 後継: 2018年MongoDB 4.0 でTransaction (ACID) 対応・Shard 間トランザクションも可能化
Replica Set (高可用性)
MongoDB の冗長化:
- 動作: 3-7 ノードのReplica Set・1 Primary+複数Secondary・自動フェイルオーバー (Primary 障害時 Secondary が昇格)
- 競合: Cassandra (全ノードPeer・Primary なし) と異なる Primary/Secondary アーキ
- メリット: 単純な構成・読込負荷分散 (Secondary 読込可能)
- 採用: 全本番MongoDB 環境の標準
- 後継: Atlas (2016年-) でマネージド Replica Set 提供
Atlas Cloud (2016年-)
MongoDB Inc. の主要収益源:
- 2016年6月Atlas Cloud リリース: マネージドMongoDB サービス
- 対応: AWS・Azure・Google Cloud (Multi-cloud)
- 特徴: 自動バックアップ・スケーリング・パッチ管理・モニタリング
- 2024年Atlas 売上$1.8B+: MongoDB Inc. の主要収益源・売上の70%+
- 競合: AWS DocumentDB (MongoDB 互換・但しMongoDB Inc. 非関連)・Azure Cosmos DB (MongoDB API 互換)
SSPL ライセンス論争 (2018年)
MongoDB の戦略的選択:
- 2018年10月MongoDB Inc.: ライセンスをAGPL から SSPL (Server Side Public License) へ変更
- SSPL 特徴: MongoDB をSaaS で提供する場合・全インフラコードのオープンソース化必要
- 狙い: AWS DocumentDB (MongoDB API 互換マネージド) 等のクラウドベンダーへの対抗
- 業界反応: Red Hat・Debian・Fedora が MongoDB をオープンソース定義非適合と認定・配布停止
- 後継: Elastic (2021年Elasticsearch も SSPL/Elastic License 変更)・Redis (2024年RSALv2 変更)等の類似戦略
トランザクション (2018年MongoDB 4.0)
ACID 対応の段階展開:
- 2018年6月MongoDB 4.0: Multi-document トランザクション対応 (Replica Set 内)
- 2019年8月MongoDB 4.2: 分散トランザクション対応 (Shard 間)
- 意義: 「NoSQL = トランザクションなし」常識を覆す・RDBMS 級信頼性
- 採用: 金融・医療・トランザクション必須業務でMongoDB 採用拡大
採用システム (2009-2024年)
- スタートアップ: 多くのSaaS スタートアップでデフォルトDB (柔軟スキーマで開発高速)
- 大手企業: eBay (一部商品DB)・Forbes・The Weather Channel・MetLife (保険)・Cisco・Adobe (Creative Cloud)・Lyft (一部)
- メディア: The New York Times・Bosch・Bouygues Telecom
- クラウド: MongoDB Atlas (AWS/Azure/GCP)・AWS DocumentDB (MongoDB 互換)・Azure Cosmos DB (MongoDB API 互換)
- 教育: 大学・JavaScript/Node.js コミュニティでデファクトDB
関連技術との違い
| 項目 | PostgreSQL (1986) | MySQL (1995) | MongoDB (2009) | Cassandra (2008) |
|---|---|---|---|---|
| データモデル | リレーショナル (+JSON) | リレーショナル | **Document (BSON) ** | Wide Column |
| スキーマ | 静的・厳格 | 静的・厳格 | 動的・柔軟 | 動的 (カラムファミリー) |
| トランザクション | あり (完全ACID) | あり (InnoDB) | **あり (4.0 2018年・Replica) ** | 限定 (Lightweight Transaction) |
| Sharding | Citus 拡張 | 手動 | **標準 (自動 Shard) ** | 完全分散 (Consistent Hashing) |
| ライセンス | PostgreSQL License (BSD 風) | GPL+商用 | **SSPL (2018年変更・論争) ** | Apache License 2.0 |
| クエリ言語 | SQL | SQL | **MongoDB Query (JSON) ** | CQL (SQL 風) |
| シェア (2024 DB-Engines) | 4位 | 2位 | 5位 | 11位 |
よくある質問 (FAQ)
Q1: なぜMongoDB が「NoSQL の代表」と呼ばれるか? A: (1) 2009年NoSQL 運動の主要ブランド・(2) JSON ライクで JavaScript/Node.js 開発者に親和性高・(3) MEAN/MERN スタック (MongoDB+Express+Angular/React+Node.js) で Web 開発標準化・(4) MongoDB University で世界中の開発者教育・(5) Atlas Cloud でクラウドネイティブ採用容易・(6) スタートアップで圧倒的人気・全要因で「NoSQL の代名詞」確立。
Q2: MongoDB と PostgreSQL (JSONB) どちらが推奨か? A: 用途次第。MongoDB: スキーマ完全自由・JavaScript/Node.js エコシステム・スタートアップ向け。PostgreSQL JSONB: SQL+JSON ハイブリッド・ACID 完全準拠・既存SQL 知識活用。新規プロジェクト: PostgreSQL+JSONB が現代主流 (Stack Overflow 1位)・MongoDB は柔軟スキーマ必須の場合に選択。
Q3: 現代でMongoDB 学ぶ価値は? A: あり。(1) Stack Overflow 5位 (29%)・採用市場で需要・(2) Node.js Backend Engineer の必須スキル・(3) Atlas Cloud で全主要クラウド対応・(4) JavaScript 開発者の親和性高・(5) MongoDB 認定 (Associate Developer・DBA) で履歴書強化・(6) MongoDB Realm (モバイル) で開発幅広がる・(7) スタートアップで需要継続。
まとめ
- 2009年2月10gen 開発
- Document DB・JSON ライクBSON
- Sharding・Replica Set
- 2016年Atlas Cloud マネージド
- 2024年Stack Overflow 5位 NoSQL 主流