0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MongoDBの基本

Posted at

MongoDBの基本

MongoDBは、NoSQL型のデータベースで、ドキュメントオリエンテッドであり、フレキシブルなデータ構造とスケーラビリティを重視しています。この記事では、MongoDBの基本概念や使用方法を解説します。


紹介

MongoDBは、JSONライクなドキュメントを保存し、スキーマレスなデータモデルを提供します。リレーショナル型データベースと比較して、フィールドの型や構造に自由度があり、変更やスケーリングが容易です。


MongoDBの基本概念

データ構造

  • データベース: MongoDBに保存されるデータの集合。
  • コレクション: ドキュメントの集合で、リレーショナルDBの「テーブル」に相当。
  • ドキュメント: JSONライクな構造のデータユニット。たとえば、一人のユーザー情報に相当する。

BSON

MongoDBの内部では、JSONの⭐バイナリデータ型⭐として「BSON」が使われます。BSONは、JSONに例えてバイナリデータ型やインデックス情報を含むことができ、急速な検索が可能です。


MongoDBの基本操作

1. データベースの作成

「myDatabase」という名前のデータベースを作成します。

CMDでの実行例

  1. MongoDBシェルを起動

    mongo
    
  2. データベースの選択:

    use myDatabase
    

    これは「myDatabase」という名前のデータベースに切り替えます。

  3. データベースの作成は最初のデータを挿入するときに行われます:

    db.myCollection.insertOne({ name: "Taro", age: 30 })
    

    これにより、myDatabaseと「myCollection」という名前のデータベースとコレクションが自動的に作成されます。

  4. データベースの確認:
    作成されたデータベースを確認するには次のコマンドを実行します。

    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は次のようなシナリオで最適です。

  1. リアルタイムアプリ: チャットやトラッキングシステム
  2. コンテンツ管理システム: CMSやブログ
  3. IoTデータの集約と分析
  4. eコマースプラットフォーム: 製品カタログの管理

MongoDBの基本的な概念や操作はこれです。クラウド上でのインスタンスやMongooseの利用で、MongoDBの最大ポテンシャルを生かすことができます。ぜひ試してみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?