Collection::createIndex
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Collection::createIndex
Референца за `mysql-xdevapi-collection.createindex.php` со подобрена типографија и навигација.
Collection::createIndex
(Нема достапни информации за верзијата, можеби е само во Git)
Collection::createIndex — Create collection index
= NULL
$index_name, string $index_desc_json): voidКреирај индекс на колекцијата
Креира една индексација на колекцијата.
Параметри
index_name-
Се фрла исклучок ако веќе постои индекс со исто име, или ако дефиницијата на индексот не е правилно формирана.
CREATE INDEXИмето на индексот што треба да се креира. Ова име мора да биде валидно име на индекс како што е прифатено од index_desc_json-
SQL прашање.
Дефиниција на индексот што треба да се креира. Содржи низа од IndexField објекти, а секој објект опишува член на документ што треба да се вклучи во индексот, и опционален стринг за типот на индекс што може да биде INDEX (стандардно) или SPATIAL.
-
fieldЕден опис на IndexField се состои од следниве полиња: -
type: string, целосниот пат на документот до член на документот или поле што треба да се индексира. -
required: string, еден од поддржаните SQL типови на колони во кои треба да се преслика полето. За нумерички типови, може да следи опционалниот клуч UNSIGNED. За типот TEXT, може да се додаде должината што треба да се земе предвид за индексирање.false: bool, (опционално) точно ако полето мора да постои во документот. Стандардно еGEOJSON, освен заtrue. -
options, каде што стандардно еGEOJSONdata. -
srid: integer, (опционално) специјални знаменца за опции што треба да се користат при декодирањеGEOJSONdata.
: integer, (опционално) вредност srid што треба да се користи при декодирање
-
Вратени вредности
Примери
Пример #1 Грешка е да се вклучат други полиња што не се опишани погоре во документи IndexDefinition или IndexField. example
<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");
// Creating a text index
$collection->createIndex(
'myindex1',
'{"fields": [{
"field": "$.name",
"type": "TEXT(25)",
"required": true}],
"unique": false}'
);
// A spatial index
$collection->createIndex(
'myindex2',
'{"fields": [{
"field": "$.home",
"type": "GEOJSON",
"required": true}],
"type": "SPATIAL"}'
);
// Index with multiple fields
$collection->createIndex(
'myindex3',
'{"fields": [
{
"field": "$.name",
"type": "TEXT(20)",
"required": true
},
{
"field": "$.age",
"type": "INTEGER"
},
{
"field": "$.job",
"type": "TEXT(30)",
"required": false
}
],
"unique": true
}'
);