MongoDB
MongoDB
MongoDBは、ドキュメント型のNoSQLデータベースです。
C++で開発されていて、人気のあるデータベースの一つです。
「MongoDBでは、どのようにデータを保存・管理しているの?」
MongoDBはドキュメント型のNoSQLです。
MongoDBでは、JSONのような「ドキュメント」という形式でデータを格納します。
RDBのテーブルとは異なりスキーマがないため、柔軟なデータを格納することができます。
そして、「ドキュメント」を集めたものが「コレクション」です。
複数のドキュメントを束ねて、一つのコレクションとして扱います。
「MongoDBの強みと弱みは?」
MongoDBは、次のような強みがあります。
- JSON形式で階層型データを扱える
MongoDBはJSON形式でデータを格納するため、階層型のデータを格納できます。
また、きちっと決められたスキーマがあるわけではないため、柔軟なデータを扱うことができます。 - 強力なインデックス
セカンダリインデックスや複合キーインデックス、マルチキーインデックスといった便利なインデックスがあります。 - SQLに似せたクエリで扱いやすい
NoSQLであるMongoDBですが、SQLに似たクエリで、扱いやすいです。 - 水平分割・複製が容易
ドキュメント型のNoSQLであるMongoDBは、水平分割や複製が容易にできます。
一方で、MongoDBには次のような弱みもあります。
- トランザクションがなく、一貫性を保証できない
MongoDBでは、複数のドキュメントを一貫性を保って更新することはできません。
そのため、複数ドキュメントで一貫性を保証する必要がある場合、利用できません。 - 結合ができない
MongoDBでは、ドキュメントの結合をすることができません。
そのため、複数ドキュメントの内容を統合して処理する場合、アプリケーション側で実装する必要があります。 - スキーマがないため、データ型が不定
MongoDBはスキーマがありません。
そのことは、柔軟に様々な形式のデータを扱えるといったメリットがある一方で、デメリットもあります。
スキーマがなく、キー名やデータ型が不明です。
そのため、保守性の低下といった問題があります。
これは動的型付け言語と似たようなイメージです。
終わり