Docs Menu
Docs Home
/
MongoDBマニュアル
/

データベースとコレクション

項目一覧

  • Overview
  • Databases
  • コレクション

MongoDBではデータレコードを、コレクションにまとめられた ドキュメント(具体的にはBSONドキュメント)として保存します。データベースには 1 つ以上のドキュメントのコレクションが保存されます。

MongoDB のデータベースコレクションは、MongoDB Atlas でホストされる配置の UI で管理できます。

MongoDB では、データベースには 1 つ以上のドキュメントのコレクションが保存されます。使用するデータベースを選択するには、mongosh で、次の例のように use <db> ステートメントを発行します。

use myDB

データベースが存在しない場合、MongoDB はそのデータベースのデータを最初に保存するときにデータベースを作成します。そのため、存在しないデータベースに切り替えて、mongosh で次の操作を実行できます。

use myNewDB
db.myNewCollection1.insertOne( { x: 1 } )

insertOne() 操作では、データベース myNewDB とコレクション myNewCollection1 がまだ存在しない場合は、両方が作成されます。データベース名とコレクション名の両方が MongoDB の命名規定に従っていることを確認してください。

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 のベストプラクティスに従う変更を提案します。 詳細については、「スキーマの提案 」を参照してください。

新しいフィールドの追加、既存のフィールドの削除、フィールド値を新しいタイプに変更するなど、コレクション内のドキュメント構造を変更するには、ドキュメントを新しい構造に更新します。

コレクションには変更不可能な UUID が割り当てられます。コレクション UUID は、レプリカセットのすべてのノード、およびシャーディングされたクラスタ内のシャード全体で同じままです。

コレクションの UUID を取得するには、listCollections コマンドまたは db.getCollectionInfos() メソッドを実行します。

戻る

はじめる