Docs Menu
Docs Home
/ / /
PHP ライブラリ マニュアル
/ /

MongoDB\Database::createCollection()

項目一覧

  • 定義
  • パラメーター
  • Return Values
  • エラーと例外
  • その他の参照
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を指定します。

重要

レプリカセットの場合は、 autoIndexIdfalseに設定 しないでください 。

バージョン 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()を参照してください。

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は対象外です。

検証はアップデートや挿入中に行われます。既存のドキュメントは、変更されるまで検証チェックを受けません。

adminlocal、および config データベース内のコレクションに対してバリデーターを指定することはできません。

system.* コレクションにバリデーターを指定することはできません。

viewOn
string

ビューの作成元となるソース コレクションまたはビューの名前。

名前はコレクションまたはビューの完全な名前空間ではありません(つまり、データベース名が含まれていない)。 ビューは、ソース コレクションまたはビューと同じデータベースに作成する必要があります。

バージョン 1.13 の新機能

writeConcern

操作に使用する書込み保証 ( write concern )。 データベースの書込み保証 (write concern) のデフォルト。

createコマンドの結果ドキュメントを含む配列またはオブジェクト。

MongoDB\Exception\UnsupportedExceptionオプションが使用され、選択したサーバーでサポートされていない場合(例: collationreadConcernwriteConcern )。

MongoDB\Exception\InvalidArgumentException は、パラメータまたはオプションの解析に関連するエラーの場合は です。

MongoDB\Driver\Exception\RuntimeException 拡張レベルのその他のエラー(例:)。

次の例では、ドキュメント検証条件を使用してtestデータベースにusersコレクションを作成します。

<?php
$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)
}
}

戻る

command()