MongoDBでデータベースを作成する場合、データベースは基本的に、1つ以上のコレクションを追加できる空のコンテナーです。
コレクションは、リレーショナルデータベースのテーブルに似ています。
リレーショナルデータベースでは、 CREATE TABLE
を使用できます データベースに必要な各テーブルを作成します。
ただし、MongoDBはリレーショナルデータベースではなく、データをドキュメントとして保存します。各ドキュメントはコレクションに保存されます。
この記事では、MongoDBでコレクションを作成する方法を説明します。
2つのオプション
MongoDBでコレクションを作成するには、次の2つのオプションがあります。
- 暗黙的
- 明示的
それぞれの例を次に示します。
コレクションの作成–暗黙的に
存在しないコレクションにドキュメントを追加するだけで、暗黙的にコレクションを作成できます。これを行うと、コレクションがまだ存在しない場合は作成されます。
コレクションを暗黙的に作成する例を次に示します。
db.pets.insert({ name: "Fetch" })
これにより、 pets
というコレクションが作成されます 、ドキュメントを挿入します。
実際には、コレクションがまだ存在しない場合にのみコレクションを作成します。すでに存在する場合は、その名前の既存のコレクションにドキュメントを挿入するだけです。
基本的に、構文は次のようになります。
db.<collection>.insert()
の場所 コレクションの名前です。
コレクションの作成–明示的に
db.createCollection()
を使用してコレクションを明示的に作成することもできます 方法。この方法では、最大サイズの設定やドキュメントの検証ルールなど、さまざまなオプションを指定できます。
これは、 CREATE TABLE
に似ています。 SQLのステートメント。そうは言っても、MongoDBでは、 CREATE TABLE
で指定する必要があるような列やデータ型などを指定する必要はありません。 リレーショナルデータベースを使用する場合のステートメント。
db.createCollection()
の使用例を次に示します。 コレクションを作成する方法:
db.createCollection("employees")
結果:
{ "ok" : 1 }
この例では、オプションを指定していません。したがって、このように作成することと、暗黙的に作成することの実際の利点はありませんでした(前の例のように)。
ただし、コレクションのオプションを指定する場合は、コレクションを明示的に作成するのが方法です。
コレクションを作成するときにいくつかのオプションを指定する例を次に示します。
db.createCollection(
"products",
{
capped : true,
size : 7500500,
max : 7000
}
)
結果:
{ "ok" : 1 }
この例で提供したオプションの説明は次のとおりです。
上限コード> 引数を使用すると、コレクションのサイズに上限を設定するかどうかを指定できます(つまり、特定のサイズを超えて拡大することはできません)。
true
を指定した場合 、size
にも最大サイズを設定する必要があります フィールド。サイズコード> 引数は、上限付きコレクションの最大サイズをバイト単位で設定します。上限のあるコレクションが最大サイズに達すると、MongoDBは古いドキュメントを削除して、新しいドキュメント用のスペースを作ります。
サイズコード> フィールドは、上限のあるコレクションには必須であり、他のコレクションには無視されます。
-
max
引数を使用すると、上限付きコレクションで許可されるドキュメントの最大数を指定できます。上限のあるコレクションがsize
に達した場合 ドキュメントの最大数に達する前に制限すると、MongoDBは古いドキュメントを削除します。したがって、size
max
で指定されたドキュメントの数を含めるには、引数で十分です。 議論。
これらは、 db.createCollection()
で指定できるさまざまなオプションの3つです。 メソッド。
構文と詳細
完全な構文(この記事の執筆時点)は次のようになります:
db.createCollection( <name>,
{
capped: <boolean>,
autoIndexId: <boolean>,
size: <number>,
max: <number>,
storageEngine: <document>,
validator: <document>,
validationLevel: <string>,
validationAction: <string>,
indexOptionDefaults: <document>,
viewOn: <string>,
pipeline: <pipeline>,
collation: <document>,
writeConcern: <document>
}
)
db.createCollection()
を参照してください 各オプションの詳細な説明については、MongoDBの公式ドキュメントから。