データベースとコレクション
Overview
MongoDBではデータレコードを、コレクションにまとめられた ドキュメント(具体的にはBSONドキュメント)として保存します。データベースには 1 つ以上のドキュメントのコレクションが保存されます。
MongoDB のデータベースとコレクションは、MongoDB Atlas でホストされる配置の UI で管理できます。
Databases
MongoDB では、データベースには 1 つ以上のドキュメントのコレクションが保存されます。使用するデータベースを選択するには、mongosh
で、次の例のように use <db>
ステートメントを発行します。
use myDB
データベースの作成
データベースが存在しない場合、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 の命名規定に従っていることを確認してください。
明示的な作成
MongoDB は、最大サイズやドキュメント検証ルールの設定など、さまざまなオプションを使用してコレクションを明示的に作成するための db.createCollection()
メソッドを提供します。これらのオプションを指定しない場合、コレクションのデータを初めて保存するときに MongoDB によって新しいコレクションが作成されるため、コレクションを明示的に作成する必要はありません。
これらのコレクション オプションを変更するには、collMod
を参照してください。
ドキュメントの検証
デフォルトでは、コレクション内のドキュメントは同じスキーマを持つ必要はありません。つまり、1 つの同じコレクション内のドキュメントは、同一のフィールド セットを持つ必要はなく、フィールドのデータ型もドキュメントごとに異なっていても構いません。
ただし、更新および挿入操作中にコレクションに対してドキュメント検証ルールを強制できます。詳細については、「スキーマの検証」を参照してください。
MongoDB Atlas でホストされている配置では、 Performance Advisorと MongoDB Atlas UI が一般的なスキーマ設計の問題を検出し、MongoDB のベストプラクティスに従う変更を提案します。 詳細については、「スキーマの提案 」を参照してください。
ドキュメント構造の変更
新しいフィールドの追加、既存のフィールドの削除、フィールド値を新しいタイプに変更するなど、コレクション内のドキュメント構造を変更するには、ドキュメントを新しい構造に更新します。
Unique Identifiers
コレクションには変更不可能な UUID が割り当てられます。コレクション UUID は、レプリカセットのすべてのノード、およびシャーディングされたクラスタ内のシャード全体で同じままです。
コレクションの UUID を取得するには、listCollections コマンドまたは db.getCollectionInfos()
メソッドを実行します。