MongoDB
概要
MongoDBとは、データを非定型のデータ構造の集合体として管理する、ドキュメント指向データベースの一つ。同名の米企業(MongoDB社)が開発し、オープンソースソフトウェアとして公開されている。階層的に複雑な構造を設定することができるデータの集合を「ドキュメント」(document)と呼び、ドキュメントの集合を「コレクション」(collection)として管理する。
ドキュメントの内部はJavaScriptのオブジェクト表現(JSON)に似た構造となっており、一意の標識(key:キー)と、対応する値のペア(ハッシュとも呼ばれる)を基本的な単位とする。値は何らかのデータ型の値そのもの以外にも、階層的に配列やハッシュを格納することができる。
各ドキュメントは任意の構造を持つことができ、リレーショナルデータベース(RDB)のように最初に定義したスキーマに縛られることがない(スキーマレス)。個々の値のデータ型として文字列や数値、日付、バイナリデータ、正規表現などを扱うことができる。
RDBとKVS(キーバリューストア)の特徴を併せ持っており、データの生成、読み込み、追加・更新、削除(CRUD)を高速に行なうことができる一方、ドキュメントに対して複雑な条件による問い合わせ(クエリ)を実行し、結果を整列(ソート)したり集計することができる。ただし、RDBでは一般的なトランザクション処理やデータ構造間の結合、SQLによるデータの照会・更新などは利用できない。
複数のコンピュータにデータベースの複製を置くレプリケーション機能があり、更新が可能な1台の「マスター」と、その内容を複製した、検索・読み込みのみ可能な「スレーブ」を複数台設置することができる。また、シャーディング(sharding)と呼ばれる機能で複数のサーバにデータを分散して性能を向上させることができる。
2009年に最初のバージョンが公開され、LinuxやWindows、macOSなど主要な環境の多くで動作する。様々なプログラミング言語から利用できるようドライバが提供されており、標準でC言語やC++、C#、Java、JavaScript、Python、Ruby、Perl、PHPなど多くの言語に対応する。
非リレーショナル型のいわゆるNoSQLデータベースの中でも非常に人気が高く、大手Webサイトの採用例も多く、管理用のユーティリティソフトなども数多く公開されている。米アマゾンドットコム(Amazon.com)社ではクラウドサービスのAmazon Web Services(AWS)の一部としてMongoDB互換データベースシステムである「Amazon DocumentDB」を提供している。