MongoDB のデータベースとコレクション
Overview
MongoDB は、データ レコードをドキュメント(具体的には、BSON ドキュメント)として保存し、コレクションにまとめます。データベースには、1 つ以上のドキュメントのコレクションが保存されます。
Atlas クラスター上のデータベースとコレクションは、Atlas UI、 mongosh
、または MongoDB Compass から管理できます。 このページでは、Atlas UI から Atlas クラスター上のデータベースとコレクションを管理する方法について説明します。 自己管理型配置では、 mongosh
または MongoDB Compass を使用してデータベースとコレクションを管理できます。
データベースとコレクションの管理に使用するクライアントを選択します。
MongoDB Atlas は、選択したクラウドプロバイダーでデータベースの配置と管理を簡素化するマルチクラウド データベース サービスです。
MongoDB Shell であるmongosh
は、MongoDB の配置を操作するための JavaScript と Node.js REPL環境です。 詳しくは、 mongosh を参照してください。
MongoDB Compass は、MongoDB データをビジュアル環境でクエリ、集計、分析するための強力な GUI です。 詳しくは、 MongoDB Compass を参照してください。
Databases
MongoDB では、データベースには 1 つ以上のドキュメントのコレクションが保存されます。
使用するデータベースを選択するには、 mongosh
で、次の例のようにuse <db>
ステートメントを発行します。
use myDB
使用するデータベースを選択するには、次の手順を実行します。
MongoDB Compass を起動し、クラスターに接続します。
詳しくは、「 MongoDB への接続 」を参照してください。
データベースの作成
データベースが存在しない場合、MongoDB はそのデータベースのデータを最初に保存するときにデータベースを作成します。そのため、存在しないデータベースに切り替えて、mongosh
で次の操作を実行できます。
use myNewDB db.myNewCollection1.insertOne( { x: 1 } )
insertOne()
操作では、データベース myNewDB
とコレクション myNewCollection1
がまだ存在しない場合は、両方が作成されます。データベース名とコレクション名の両方が MongoDB の命名規定に従っていることを確認してください。
コレクション
MongoDB はドキュメントをコレクションに保存します。コレクションは、関係データベースのテーブルに類似しています。
コレクションを作成する
コレクションが存在しない場合、MongoDB は最初にそのコレクションにデータを保存する際にコレクションを作成します。
db.myNewCollection2.insertOne( { x: 1 } ) db.myNewCollection3.createIndex( { y: 1 } )
insertOne()
と createIndex()
の両操作は、それぞれのコレクションがまだ存在していない場合に作成します。コレクション名が MongoDB の命名規定に従っていることを確認してください。
明示的な作成
コレクションを新規作成するには、Atlas にログインして次の操作を行います。
MongoDB は、最大サイズやドキュメント検証ルールの設定など、さまざまなオプションを使用してコレクションを明示的に作成するための db.createCollection()
メソッドを提供します。これらのオプションを指定しない場合、コレクションのデータを初めて保存するときに MongoDB によって新しいコレクションが作成されるため、コレクションを明示的に作成する必要はありません。
これらのコレクション オプションを変更するには、collMod
を参照してください。
スキーマ検証
デフォルトでは、コレクション内のドキュメントは同じスキーマを持つ必要はありません。つまり、1 つの同じコレクション内のドキュメントは、同一のフィールド セットを持つ必要はなく、フィールドのデータ型もドキュメントごとに異なっていても構いません。
ただし、更新および挿入操作中にコレクションに対してスキーマ検証ルールを強制適用できます。詳細については、「スキーマの検証」を参照してください。
MongoDB Atlas でホストされている配置では、 Performance Advisorと MongoDB Atlas UI が一般的なスキーマ設計の問題を検出し、MongoDB のベストプラクティスに従う変更を提案します。 詳細については、「スキーマの提案 」を参照してください。
ドキュメント構造の変更
新しいフィールドの追加、既存のフィールドの削除、フィールド値を新しいタイプに変更するなど、コレクション内のドキュメント構造を変更するには、ドキュメントを新しい構造に更新します。
Unique Identifiers
コレクションには変更不可の UUID が割り当てられます。コレクション UUID は、シャーディングされたクラスターにあるレプリカセットやシャードのすべてのノードで同じに保たれます。