MongoDB\Database::createCollection()
定義
MongoDB\Database::createCollection()
コレクションを明示的に作成します。
function createCollection( string $collectionName, array $options = [] ): array|object MongoDB では、新しいコレクションにドキュメントを挿入する場合など、コマンドで最初にコレクションを参照すると暗黙的にコレクションが作成されます。 また、
MongoDB\Database::createCollection()
メソッドまたは MongoDB shell でdb.createCollection()を使用して、特定のオプションで明示的にコレクションを作成することもできます。コレクションを明示的に作成すると、 Capped コレクションの作成、ドキュメント検証条件の指定 、または ストレージエンジンやインデックス作成オプションの構成 ができます。
パラメーター
$collectionName
: string- 作成するコレクションの名前。
$options
: 配列必要なオプションを指定する配列。
注意
MongoDB のすべてのバージョンですべてのオプションが使用できるわけではありません。 互換性に関する考慮事項については、MongoDB マニュアルのcreateコマンド リファレンスを参照してください。
名前タイプ説明autoIndexId
ブール値
_id
フィールドでのインデックスの自動作成を無効にするには、false
を指定します。重要:レプリカセットの場合、
autoIndexId
をfalse
に設定しないでください。バージョン 1.4 から非推奨: このオプションは MongoDB 3.2 以降では非推奨となっています。 MongoDB 4.0 以降では、複製されたコレクション(つまり、任意の mongod モードの
local
データベースの外部コレクション)を作成する場合、このオプションをfalse
にすることはできません。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 の新機能。
flags
integer
MMAPv1 ストレージ エンジンでのみ使用でき、
usePowerOf2Sizes
noPadding
フラグと フラグを設定します。ライブラリは、ビット単位の OR 演算子 と組み合わせて使用できる定数を提供します。 フラグの値を設定するため
MongoDB\Operation\CreateCollection::USE_POWER_OF_2_SIZES
:1
MongoDB\Operation\CreateCollection::NO_PADDING
:2
デフォルトは
1
です。MongoDB 3.0以降では、
usePowerOf2Sizes
フラグは無視されます。 詳細については、 collModおよびdb.createCollection()を参照してください。非推奨 : このオプションは非推奨であり、v2.0 PHPライブラリのリリースで削除される予定です。 MMAPv1 ストレージエンジンから Wired Tiger へのアップグレードの詳細については、サーバー マニュアルの「 自己管理型スタンドアロンのWiredTigerへの変更 」ガイドを参照してください。
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
配列
型マップ カーソルに適用される 。これは、BSON ドキュメントが PHP 値に変換される方法を決定します。データベースのタイプ マップがデフォルトで設定されます。
これは返されたコマンドの結果ドキュメントに使用されます。
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) のデフォルト。
Return Values
createコマンドの結果ドキュメントを含む配列またはオブジェクト。
エラーと例外
MongoDB\Exception\UnsupportedException
オプションが使用され、選択したサーバーでサポートされていない場合(例: collation
、 readConcern
、 writeConcern
)。
MongoDB\Exception\InvalidArgumentException
は、パラメータまたはオプションの解析に関連するエラーの場合は です。
MongoDB\Driver\Exception\RuntimeException 拡張レベルのその他のエラー(例:)。
例
次の例では、ドキュメント検証条件を使用してtest
データベースにusers
コレクションを作成します。
$db = (new MongoDB\Client)->test; $result = $db->createCollection('users', [ 'validator' => [ 'username' => ['$type' => 'string'], 'email' => ['$regex' => '@mongodb\.com$'], ], ]); var_dump($result);
出力は次のようになります。
object(MongoDB\Model\BSONDocument)#11 (1) { ["storage":"ArrayObject":private]=> array(1) { ["ok"]=> float(1) } }
その他の参照
createコマンドリファレンス(MongoDB マニュアル)