定義
MongoDB\Database::createCollection()コレクションを明示的に作成します。
function createCollection( string $collectionName, array $options = [] ): array|object MongoDB creates collections implicitly when you first reference the collection in a command, such as when inserting a document into a new collection. You may also explicitly create a collection with specific options using the
MongoDB\Database::createCollection()method, or using db.createCollection() in the MongoDB shell.コレクションを明示的に作成すると、 Capped コレクションの作成、ドキュメント検証条件の指定 、または ストレージエンジンやインデックス作成オプションの構成 ができます。
パラメーター
$collectionName: string- 作成するコレクションの名前。
$options: 配列必要なオプションを指定する配列。
注意
MongoDB のすべてのバージョンですべてのオプションが使用できるわけではありません。 互換性に関する考慮事項については、MongoDB マニュアルのcreateコマンド リファレンスを参照してください。
名前タイプ説明autoIndexId
ブール値
_idフィールドでのインデックスの自動作成を無効にするには、falseを指定します。重要:レプリカセットの場合、
autoIndexIdをfalseに設定しないでください。バージョン1.4 以降では非推奨: このオプションはMongoDB3.2 以降では非推奨となっています。 MongoDB4.0
falselocal以降では、複製されたコレクション(つまり、任意のmongodモードの データベースの外部コレクション)を作成する場合、このオプションを にすることはできません。Capped
ブール値
上限付きコレクションを作成するには、
trueを指定します。trueを指定する場合は、sizeオプションで最大サイズを設定する必要もあります。changeStreamPreAndPostImages
ドキュメント
変更ストリーム で変更前と変更後のイメージのサポートを構成するために使用されます。 詳細については、「作成コマンドのドキュメント 」を参照してください。
このオプションは MongoDB 6.0 以降で使用可能であり、古いサーバー バージョンで指定すると実行時に例外が発生します。
バージョン1.13の新機能。
clusteredIndex
ドキュメント
クラスター化されたインデックスの仕様。 詳細については、「クラスター化されたコレクション 」または「作成コマンドのドキュメント 」を参照してください。
このオプションは MongoDB 5.3 以降で使用可能であり、古いサーバー バージョンに指定すると実行時に例外が発生します。
バージョン1.13の新機能。
collation
array|object
Collation allows users to specify language-specific rules for string comparison, such as rules for lettercase and accent marks. When specifying collation, the
localefield is mandatory; all other collation fields are optional. For descriptions of the fields, see Collation Document.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 ストレージ エンジンでのみ使用でき、
usePowerOf2SizesnoPaddingフラグと フラグを設定します。ライブラリは、ビット単位の OR 演算子と組み合わせてフラグ値を設定できる定数を提供します。
MongoDB\Operation\CreateCollection::USE_POWER_OF_2_SIZES:1MongoDB\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
配列
The type map to apply to cursors, which determines how BSON documents are converted to PHP values. Defaults to the database's type map.
これは返されたコマンドの結果ドキュメントに使用されます。
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 マニュアル)