MongoDBの基本
MongoDBは、NoSQL型のデータベースで、ドキュメントオリエンテッドであり、フレキシブルなデータ構造とスケーラビリティを重視しています。この記事では、MongoDBの基本概念や使用方法を解説します。
紹介
MongoDBは、JSONライクなドキュメントを保存し、スキーマレスなデータモデルを提供します。リレーショナル型データベースと比較して、フィールドの型や構造に自由度があり、変更やスケーリングが容易です。
MongoDBの基本概念
データ構造
- データベース: MongoDBに保存されるデータの集合。
- コレクション: ドキュメントの集合で、リレーショナルDBの「テーブル」に相当。
- ドキュメント: JSONライクな構造のデータユニット。たとえば、一人のユーザー情報に相当する。
BSON
MongoDBの内部では、JSONの⭐バイナリデータ型⭐として「BSON」が使われます。BSONは、JSONに例えてバイナリデータ型やインデックス情報を含むことができ、急速な検索が可能です。
MongoDBの基本操作
1. データベースの作成
「myDatabase」という名前のデータベースを作成します。
CMDでの実行例
-
MongoDBシェルを起動
mongo
-
データベースの選択:
use myDatabase
これは「myDatabase」という名前のデータベースに切り替えます。
-
データベースの作成は最初のデータを挿入するときに行われます:
db.myCollection.insertOne({ name: "Taro", age: 30 })
これにより、
myDatabase
と「myCollection」という名前のデータベースとコレクションが自動的に作成されます。 -
データベースの確認:
作成されたデータベースを確認するには次のコマンドを実行します。show dbs
この事により、現在使用可能なデータベースの一覧が表示されます。
2. コレクションの作成
「myCollection」という名前のコレクションを作成します。
db.createCollection("myCollection")
3. ドキュメントの挿入
一つのドキュメントをコレクションに挿入する例です。
db.myCollection.insertOne({ name: "Taro", age: 30 })
複数のドキュメントを一気に挿入することも可能です。
db.myCollection.insertMany([
{ name: "Hanako", age: 25 },
{ name: "Ken", age: 35 }
])
4. データ検索
すべてのドキュメントを検索します。
db.myCollection.find()
条件を指定して検索することも可能です。
db.myCollection.find({ age: { $gte: 30 } }) # 30歳以上
5. データ更新
名前が"Taro"のドキュメントの年齢を更新します。
db.myCollection.updateOne({ name: "Taro" }, { $set: { age: 31 } })
複数ドキュメントを更新することも可能です。
db.myCollection.updateMany({}, { $inc: { age: 1 } }) # 年齢を1歳増加
6. データ削除
名前が"Taro"のドキュメントを削除します。
db.myCollection.deleteOne({ name: "Taro" })
条件に一致するすべてのドキュメントを削除する例です。
db.myCollection.deleteMany({ age: { $lt: 20 } }) # 20歳未満を削除
ユースケース
MongoDBは次のようなシナリオで最適です。
- リアルタイムアプリ: チャットやトラッキングシステム
- コンテンツ管理システム: CMSやブログ
- IoTデータの集約と分析
- eコマースプラットフォーム: 製品カタログの管理
MongoDBの基本的な概念や操作はこれです。クラウド上でのインスタンスやMongooseの利用で、MongoDBの最大ポテンシャルを生かすことができます。ぜひ試してみてください。