Schema::createCollection

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

Schema::createCollectionAdd collection to schema

Description

public mysql_xdevapi\Schema::createCollection(string $name, string $validate = ?): mysql_xdevapi\Collection

Create a collection within the schema.

Parameters

name

Collection name.

validate

Validation definition, as a JSON object.

Return Values

The Collection object.

Changelog

Version Description
8.0.20 Added the optional validate parameter.

Examples

Example #1 mysql_xdevapi\Schema::createCollection() example

<?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());

The above example will output something similar to:

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

Example #2 mysql_xdevapi\Schema::createCollection() example

<?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();