定義
MongoDB\Database::createCollection()コレクションを明示的に作成します。
function createCollection( string $collectionName, array $options = [] ): void MongoDB では、新しいコレクションにドキュメントを挿入する場合など、コマンドで最初にコレクションを参照すると暗黙的にコレクションが作成されます。 また、
MongoDB\Database::createCollection()メソッドを使用するか、MongoDB shell でdb.createCollection()を使用して、特定のオプションで明示的にコレクションを作成することもできます。コレクションを明示的に作成すると、 Capped コレクションの作成、ドキュメント検証条件の指定 、または ストレージエンジンやインデックス作成オプションの構成 ができます。
パラメーター
$collectionName: string- 作成するコレクションの名前。
$options: 配列必要なオプションを指定する配列。
注意
MongoDB のすべてのバージョンですべてのオプションが使用できるわけではありません。 互換性に関する考慮事項については、MongoDB マニュアルのcreateコマンド リファレンスを参照してください。
名前タイプ説明Capped
ブール値
上限付きコレクションを作成するには、
trueを指定します。trueを指定する場合は、sizeオプションで最大サイズを設定する必要もあります。changeStreamPreAndPostImages
ドキュメント
変更ストリーム で変更前と変更後のイメージのサポートを構成するために使用されます。 詳細については、「作成コマンドのドキュメント 」を参照してください。
このオプションは MongoDB 6.0 以降で使用可能であり、古いサーバー バージョンで指定すると実行時に例外が発生します。
1.13バージョン の新機能。:
clusteredIndex
ドキュメント
クラスター化されたインデックスの仕様。 詳細については、「クラスター化されたコレクション 」または「作成コマンドのドキュメント 」を参照してください。
このオプションは MongoDB 5.3 以降で使用可能であり、古いサーバー バージョンに指定すると実行時に例外が発生します。
1.13バージョン の新機能。:
collation
array|object
照合順序を指定すると、大文字や小文字、アクセント記号など、string を比較するための言語独自のルールを指定できます。 照合を指定する場合、
localeフィールドは必須です。その他の照合フィールドはすべてオプションです。 フィールドの説明については、 「照合ドキュメント」 を参照してください。comment
混合
データベースプロファイラ、 currentOp出力、およびログから操作を追跡するのに役立つ任意のコメントを指定できるようにします。
このオプションは MongoDB 4.4 以降で使用可能であり、古いサーバー バージョンで指定すると実行時に例外が発生します。
1.13バージョン の新機能。:
暗号化されたフィールド
ドキュメント
Queryable Encryption の暗号化されたフィールドを説明するドキュメント。 省略した場合、
autoEncryptionドライバー オプション内のencryptedFieldsMapオプションが参照されます。 詳細については、MongoDB マニュアルの 「フィールドの暗号化とクエリ可能性」 を参照してください。このオプションは MongoDB 7.0 以降で使用可能であり、古いサーバー バージョンで指定すると実行時に例外が発生します。
1.13バージョン の新機能。:
expireAfterSeconds
integer
時系列コレクション内のドキュメントを自動的に削除するために使用されます。 詳細については、「作成コマンドのドキュメント 」を参照してください。
このオプションは MongoDB 5.0 以降で使用可能であり、古いサーバー バージョンに指定すると実行時に例外が発生します。
1.9バージョン の新機能。:
indexOptionDefaults
array|object
ユーザーがコレクションの作成時にインデックスのデフォルト構成を指定できるようにします。
indexOptionDefaultsオプションは、次の形式をとるstorageEngineドキュメントを受け入れます。{ <storage-engine-name>: <options> } インデックスの作成時に指定されたストレージエンジン構成は、異なるストレージエンジンを使用するノードのあるレプリカセットをサポートするために、レプリケーション中に検証され、 oplogに記録されます。
最大
integer
Capped コレクションで許可されるドキュメントの最大数。
sizeオプションはこの制限よりも優先されます。 上限付きコレクションがドキュメントの最大数に達する前にsizeの制限に達した場合、MongoDB は古いドキュメントを削除します。max制限の使用を優先する場合は、上限付きコレクションに必要なsize制限をドキュメントの最大数を十分に超える値に設定してください。maxTimeMS
integer
カーソルに対する情報処理操作の累積時間制限(ミリ秒単位)。 MongoDB は、次の割り込みポイントが最も近い時点で操作を中止します。
パイプライン
配列
集計パイプライン ステージで構成される配列。これは、
viewOnで指定されたコレクションまたはビューに適用されます。 詳細については、「作成コマンドのドキュメント 」を参照してください。1.13バージョン の新機能。:
セッション
操作に関連付けるクライアント セッション。
1.3バージョン の新機能。:
サイズ
integer
上限付きコレクションの最大サイズをバイト単位で指定します。 MongoDB は、上限付きコレクションが最大サイズに達すると、古いドキュメントを削除して新しいドキュメント用スペースを確保します。
sizeオプションは、上限付きコレクションに必須であり、他のコレクションでは無視されます。ストレージエンジン用
array|object
WiredTiger ストレージエンジンでのみ使用できます。
コレクション作成時に、ユーザーがコレクションごとにストレージエンジンの構成を指定できるようにします。
storageEngineオプションの値は、次の形式になります。{ <storage-engine-name>: <options> } コレクション作成時に指定されたストレージエンジンの設定は、レプリカセット内で異なるストレージエンジンを使用するメンバーをサポートするために、複製中にoplogに検証され、ログが記録されます。
時系列
array|object
時系列コレクションを作成するためのオプションを含むオブジェクト。 サポートされているオプションについては、 createコマンドのドキュメント を参照してください。
このオプションは MongoDB 5.0 以降で使用可能であり、古いサーバー バージョンに指定すると実行時に例外が発生します。
1.9バージョン の新機能。:
typeMap
配列
validationAction
string
無効なドキュメントで
errorを発行するか、違反に関するwarnのみに留め、無効なドキュメントを挿入できるようにするかを指定します。重要: ドキュメントの検証は、
validationLevelによって決定されたドキュメントにのみ適用されます。validationAction説明"error"デフォルトは。 ドキュメントは、書込みが行われる前に検証に合格する必要があります。 合格していない場合は、書込み操作に失敗します。
"warn"ドキュメントは検証に合格する必要はありません。ドキュメントがバリデーションに失敗した場合、書込み操作はバリデーションの失敗をログに記録します。
validationLevel
string
更新中に MongoDB が既存のドキュメントに検証ルールをどの程度厳密に適用するかを決定します。
validationLevel説明"off"挿入またはアップデートの検証は行われません。
"strict"デフォルトは。 すべての挿入とすべてのアップデートに検証ルールを適用します。
"moderate"既存の有効なドキュメントの挿入とアップデートに検証ルールを適用します。既存の無効なドキュメントのアップデートにはルールは適用しません。
validator
array|object
ユーザーがコレクションの検証ルールまたは式を指定できるようにします。 詳細については、MongoDB マニュアルの 「ドキュメント検証」 を参照してください。
validatorオプションは、検証ルールまたは式を指定する配列を受け取ります。 MongoDB のクエリ演算子と同じ演算子を使用して式を指定できます。ただし、$near、$nearSphere、$text、$whereは対象外です。検証はアップデートや挿入中に行われます。既存のドキュメントは、変更されるまで検証チェックを受けません。
admin、local、およびconfigデータベース内のコレクションに対してバリデーターを指定することはできません。system.*コレクションにバリデーターを指定することはできません。viewOn
string
ビューの作成元となるソース コレクションまたはビューの名前。
名前はコレクションまたはビューの完全な名前空間ではありません(つまり、データベース名が含まれていない)。 ビューは、ソース コレクションまたはビューと同じデータベースに作成する必要があります。
1.13バージョン の新機能。:
writeConcern
操作に使用する書込み保証 ( write concern )。 データベースの書込み保証 (write concern) のデフォルト。
エラーと例外
MongoDB\Exception\UnsupportedExceptionオプションが使用され、選択したサーバーでサポートされていない場合(例: collation 、 readConcern 、 writeConcern )。
MongoDB\Exception\InvalidArgumentException は、パラメータまたはオプションの解析に関連するエラーの場合は です。
MongoDB$Driver\Exception\RuntimeException は、拡張レベルの他のエラーの場合(例:)。
例
次の例では、ドキュメント検証条件を使用してtestデータベースにusersコレクションを作成します。
$db = (new MongoDB\Client)->test; $db->createCollection('users', [ 'validator' => [ 'username' => ['$type' => 'string'], 'email' => ['$regex' => '@mongodb\.com$'], ], ]);
その他の参照
createコマンドリファレンス(MongoDB マニュアル)