スキーマにコレクションを追加する

# Schema::createCollection

(No version information available, might only be in Git)

Schema::createCollection — スキーマにコレクションを追加する

### 説明

public function mysql_xdevapi\Schema::createCollection(string `$name`): mysql_xdevapi\Collection

スキーマ内にコレクションを作成します。

警告

この関数は、 現在のところ詳細な情報はありません。引数のリストのみが 記述されています。

### パラメータ

`name`

  コレクションの名前。

`validate`

  バリデーションの定義を JSON オブジェクトとして指定します。

### 戻り値

コレクションオブジェクトを返します。

### 変更履歴

バージョン | 説明
--- | ---
8.0.20 | オプションの validate 引数が追加されました。

### 例

例1 mysql_xdevapi\Schema::createCollection() の例

    <?php
    $session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

    $session->sql("DROP DATABASE IF EXISTS food")->execute();
    $session->sql("CREATE DATABASE food")->execute();
    $session->sql("CREATE TABLE food.fruit(name text, rating text)")->execute();

    $schema = $session->getSchema("food");
    $schema->createCollection("trees");

    print_r($schema->gettables());
    print_r($schema->getcollections());

上の例の出力は、 たとえば以下のようになります。

    Array
    (
        [fruit] => mysql_xdevapi\Table Object
            (
                [name] => fruit
            )
    )
    Array
    (
        [trees] => mysql_xdevapi\Collection Object
            (
                [name] => trees
            )
    )

例2 mysql_xdevapi\Schema::createCollection() の例

    <?php
     $collection = $schema->createCollection("mycollection", '{
        "validation": {
            "level": "strict",
            "schema": {
                "id": "http://json-schema.org/geo",
                "description": "A geographical coordinate",
                "type": "object",
                "properties": {
                    "latitude": {
                        "type": "number"
                    },
                    "longitude": {
                        "type": "number"
                    }
                },
                "required": ["latitude", "longitude"]
            }
        }
    }');
    // Succeeds
    $collection->add('{"latitude": 10, "longitude": 20}')->execute();

    // Fails, invalid types (not numbers)
    $collection->add('{"latitude": "lat", "longitude": "long"}')->execute();

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open