MongoDB - コレクションの作成:ビギナー向けガイド

こんにちは、未来のデータベースの魔法使いさんたち!今日は、MongoDBの世界に踏み込み、コレクションの作成方法を学びます。プログラミングが初めての方也不用担心——私はあなたの親切なガイドとして、ステップバイステップで説明します。コーヒー(または、あなたが好きなお茶)を手に取り、一緒に飛び込みましょう!

MongoDB - Create Collection

MongoDBとは?

コレクションの作成を始める前に、MongoDBとは何かを理解するために少し時間を取ります。大きな箱を imagine して、そこにさまざまなものを収納できる——それはMongoDBの本質です。ただし、データを収納するためのものです。データを柔軟に収納し、管理できるドキュメントベースのフォーマットを持つデータベースです。

コレクションとは?

MongoDBでは、コレクションは関連するドキュメントを保管するフォルダのようなものです。従来のデータベースに慣れている場合は、コレクションをテーブルと考えても構いません。しかし、MongoDBのコレクションははるかに柔軟です——固定的な構造が必要ないため、同じコレクションに異なる種類のドキュメントを収納できます。

createCollection()メソッド

さあ、エキサイティングな部分に進みましょう——コレクションの作成です!MongoDBは、コレクションを作成するための便利なメソッド「createCollection()」を提供しています。データのための新しいフォルダを作成する魔法の杖のようなものです。

基本的な構文

以下は、コレクションを作成する基本的な構文です:

db.createCollection(name, options)

これを分解すると:

  • dbは現在のデータベースを指します。
  • createCollectionは使用するメソッドです。
  • nameは新しいコレクションに名付けるための文字列です。
  • optionsは、コレクションの設定を設定するためのオプションパラメータです(省略可能)。

シンプルなコレクションの作成

まずは基本例から始めましょう。図書館のデータベースを構築して、書籍のためのコレクションを作成したいとします:

db.createCollection("books")

このコマンドは、現在のデータベースに「books」という新しいコレクションを作成します。シンプルですね!MongoDBに「新しいフォルダが必要だ」と言っているようなものです。

オプション付きでコレクションを作成する

次に、少し凝った例を見てみましょう。MongoDBはコレクションを作成する際にさまざまなオプションを設定できます。以下はその例です:

db.createCollection("readers", {
capped: true,
size: 5242880,
max: 5000
})

この例では、「readers」というコレクションを作成し、特定のオプションを設定しています:

  • capped: trueは、このコレクションが固定サイズを持つことを意味します。
  • size: 5242880は、コレクションの最大サイズを5メガバイトに設定します。
  • max: 5000は、コレクションの最大ドキュメント数を5000に設定します。

これを、特定の数の本しか収納できない特別な書架に例えることができます。

通常使用されるオプション

以下は、コレクションを作成する際に最もよく使用されるオプションの一部です:

オプション 説明
capped ブール値。trueにするとキャップ付きコレクションが作成されます。
size 数値。キャップ付きコレクションの最大サイズをバイト単位で指定します。
max 数値。キャップ付きコレクションの最大ドキュメント数を指定します。
validator ドキュメント。コレクションの検証ルールを指定します。
validationLevel 文字列。MongoDBが検証ルールをどれだけ厳格に適用するかを決定します。
validationAction 文字列。無効なドキュメントに対してMongoDBがエラーを発生させるか警告するかを決定します。

実用的な例

例1: ログのためのキャップ付きコレクションの作成

最新のログを追跡するシステムを構築する場合、無限に成長しないようにしたいとします:

db.createCollection("systemLogs", {
capped: true,
size: 10485760,  // 10 MB
max: 10000
})

このコマンドは、システムログを保存するためのコレクションを作成しますが、最新のエントリのみを保持し、10 MBまたは10,000ドキュメントのいずれかが先に達するまでに自動的に古いエントリを削除します。ノート padsが古いノートを自動的に消去して新しいノートのスペースを作るのと同じです!

例2: ユーザープロファイルのための検証付きコレクションの作成

ユーザープロファイルのデータベースに名前と有効なメールアドレスを確実に含めるようにしたい場合:

db.createCollection("userProfiles", {
validator: {
$jsonSchema: {
bsonType: "object",
required: ["name", "email"],
properties: {
name: {
bsonType: "string",
description: "文字列であり、必須です"
},
email: {
bsonType: "string",
pattern: "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$",
description: "有効なメールアドレスであり、必須です"
}
}
}
}
})

この例では、各ドキュメントが名前(文字列)と有効なメールアドレスを含むことを確保するためのコレクションを作成します。図書館の司書があなたが正しく記入した図書カードを受け取るのと同じです!

コレクションが存在するか確認する

新しいコレクションを作成する前に、既に存在するかを確認するのは良くある做法です。以下はその方法です:

if (!db.getCollectionNames().includes("myNewCollection")) {
db.createCollection("myNewCollection")
print("コレクションが正常に作成されました!")
} else {
print("コレクションは既に存在しています!")
}

このスクリプトは「myNewCollection」が存在するかを確認します。存在しない場合、コレクションを作成し、成功メッセージを表示します。存在する場合、既に存在することを通知します。特定の科目のためのフォルダが既に存在するか確認してから新しいフォルダを作成するのと同じです!

結論

おめでとうございます!MongoDBのコレクションの作成の基本を学びました。コレクションはデータの柔軟なコンテナであり、「createCollection()」メソッドはそれを設定するためのツールです。

MongoDBの旅を続ける中で、さらに多くのカスタマイズと最適化の方法を発見するでしょう。今は、自分を褒めてください——MongoDBのマスターへの道を歩んでいるのです!

練習を続け、好奇心を持ち、ハッピーコーディングを!データの家を設計する建筑师であるあなたにとって、快適で効率的で、データが必要とするように作り上げてください!

Credits: Image by storyset