Замена коллекции
Replace Collection поддерживает изменение политики индексирования коллекции после создания. Изменение других свойств коллекции, таких как идентификатор или ключ секции, не поддерживается.
Примечание
В этих справочных статьях по API показано, как создавать ресурсы с помощью API плоскости данных Azure Cosmos DB. С помощью API плоскости данных можно настроить основные параметры, такие как политика индексирования, ключи секций, так же, как в пакетах SDK для Cosmos DB. Если требуется полная поддержка функций для всех ресурсов Azure Cosmos DB, рекомендуется использовать поставщик ресурсов Cosmos DB.
Запрос
Метод | Универсальный код ресурса (URI) запроса | Описание |
---|---|---|
PUT | https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id} | {databaseaccount} — это имя учетной записи Azure Cosmos DB, созданной в вашей подписке. Значение {db-id} — это созданное пользователем имя или идентификатор базы данных, а не системный идентификатор (rid). Значение {coll-id} — это имя коллекции для замены. |
Заголовки
Заголовки, используемые всеми запросами Cosmos DB, см. в статье Общие заголовки запросов REST Azure Cosmos DB .
Текст
Свойство | Обязательно | Тип | Описание |
---|---|---|---|
идентификатор | Обязательно | Строка | Пользователь создает уникальное имя для коллекции. Две коллекции не могут иметь одинаковые идентификаторы. Это строка, которая не должна содержать более 255 символов. |
indexingPolicy | Необязательно | Объект | Это значение используется для настройки индексов элементов коллекции. По умолчанию политика индексирования устанавливается автоматически для всех путей к документам в коллекции. |
partitionKey | Обязательно | Объект | Это значение задает ключ секции, используемый для секционирования данных. Чтобы использовать большой ключ секции, укажите версию 2 в свойстве partitionKey. Если rest API версии 2018-12-31 или выше, коллекция должна содержать определение partitionKey . В версиях старше 2018-12-31 можно создать устаревшую несекционированную коллекцию с пропускной способностью вручную, опустив определение partitionKey и убедив пропускную способность в диапазоне от 400 до 10 000 ЕЗ/с. Для обеспечения оптимальной производительности и масштабируемости рекомендуется всегда задавать ключ секции. Узнайте, как выбрать хороший ключ секции. |
Примечание
При задании путей пользовательского индекса необходимо выбрать правило индексации по умолчанию для всего дерева документа, указав специальный путь "/*".
{
"id": "testcoll",
"indexingPolicy": {
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"dataType": "Number",
"precision": -1,
"kind": "Range"
},
{
"dataType": "String",
"precision": 3,
"kind": "Hash"
}
]
}
],
"excludedPaths": []
},
"_rid": "XrdaAKx3Hgw=",
"_ts": 1459203135,
"_self": "dbs/XrdaAA==/colls/XrdaAKx3Hgw=/",
"_etag": "\"00006c00-0000-0000-0000-56f9ac3f0000\"",
"_docs": "docs/",
"_sprocs": "sprocs/",
"_triggers": "triggers/",
"_udfs": "udfs/",
"_conflicts": "conflicts/"
}
Ответ
Функция Replace Collection возвращает обновленную коллекцию в виде текста ответа.
Заголовки
Заголовки, возвращаемые всеми ответами Cosmos DB, см. в статье Общие заголовки ответов REST Azure Cosmos DB .
Коды состояния
В таблице ниже указаны стандартные коды состояния, возвращаемые этой операцией. Полный список кодов состояния см. в разделе Коды состояния HTTP.
Код | Описание |
---|---|
201 OK | Операция PUT прошла успешно. |
400 — недопустимый запрос | Недопустимый текст JSON. Проверьте наличие фигурных скобок и кавычек. |
Текст
Свойство | Описание |
---|---|
идентификатор | Это уникальное имя, которое идентифицирует новую коллекцию. |
_rid | Это свойство, созданное системой. Идентификатор ресурса (_rid) — это уникальный идентификатор, который также является иерархическим для стека ресурсов в модели ресурсов. Он используется системой для размещения и перемещения по ресурсам разрешения. |
_ts | Это свойство, созданное системой. Оно представляет метку времени последнего обновления ресурса. Значение — метка времени. |
_self | Это свойство, созданное системой. Это уникальный адресуемый URI для ресурса. |
_etag | Это системное свойство, представляющее тег ресурса, необходимый для управления оптимистическим параллелизмом. |
_doc | Это системное свойство, указывающее адресный путь к ресурсу documents. |
_sprocs | Это системное свойство, указывающее адресуемый путь к ресурсу хранимых процедур (sprocs). |
_triggers | Это системное свойство, указывающее адресуемый путь к ресурсу триггеров. |
_udfs | Это системное свойство, указывающее адресуемый путь к ресурсу определяемых пользователем функций (UDFS). |
_conflicts | Это созданное системой свойство, указывающее адресуемый путь ресурса конфликтов. Если во время выполнения операции с ресурсом в коллекции возникает конфликт, пользователи могут проверить конфликтующие ресурсы с помощью операции GET для пути URI конфликтов. |
indexingPolicy | Это параметры политики индексирования для коллекции. |
partitionKey | Это параметры конфигурации секционирования для коллекции. |
Свойства в разделе Включенные пути
Свойство | Описание |
---|---|
path | Путь, к которому применяется поведение индексирования. Пути индекса начинаются с корня (/) и, как правило, заканчиваются оператором подстановочного знака (?), обозначающего, что существует несколько возможных значений префикса. Например, чтобы обслуживать запрос SELECT * FROM Families F WHERE F.familyName = "Andersen", вам нужно включить путь индекса для /familyName/? в политику индекса коллекции. В путях индекса можно также использовать оператор подстановочного знака * для задания алгоритма пути рекурсивно по префиксу. Например, /payload/* можно использовать для исключения из индексации всего, что находится по свойству payload. |
dataType | Это тип данных, к которому применяется поведение индексирования. Может иметь значение String, Number, Point*, Polygon или LineString. Логические значения и значения NULL индексируются автоматически |
kind | Тип индекса. Хэш-индексы полезны для сравнения на равенство, а индексы range — для равенства, сравнения диапазонов и сортировки. Пространственные индексы полезны для пространственных запросов. |
точность | Точность индекса. Можно задать значение -1 для максимальной точности или от 1 до 8 для числа и 1–100 для строки. Неприменимо для типов данных Point, Polygon и LineString . |
Свойства в разделе Исключенные пути
Свойство | Описание |
---|---|
path | Путь, исключенный из индексирования. Пути к индексу начинаются с корня (/) и обычно заканчиваются подстановочным оператором *. Например, /payload/* можно использовать для исключения из индексации всего, что находится по свойству payload. |
{
"id": "testcoll",
"indexingPolicy": {
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"kind": "Range",
"dataType": "Number",
"precision": -1
},
{
"kind": "Hash",
"dataType": "String",
"precision": 3
}
]
}
],
"excludedPaths": []
},
"_rid": "XrdaAKx3Hgw=",
"_ts": 1459203136,
"_self": "dbs/XrdaAA==/colls/XrdaAKx3Hgw=/",
"_etag": "\"00006e00-0000-0000-0000-56f9ac400000\"",
"_docs": "docs/",
"_sprocs": "sprocs/",
"_triggers": "triggers/",
"_udfs": "udfs/",
"_conflicts": "conflicts/"
}
Пример
PUT https://querydemo.documents.azure.com/dbs/XrdaAA==/colls/XrdaAKx3Hgw= HTTP/1.1
x-ms.date: 04/20/2021
authorization: type%3dmaster%26ver%3d1.0%26sig%3dZY2s2H1TuPFKk1H2od5qVLbn57vjI9rKz0CMXKOk3GA%3d
Cache-Control: no-cache
User-Agent: Microsoft.Azure.Documents.Client/1.6.0.0
x-ms-version: 2015-12-16
Accept: application/json
Host: querydemo.documents.azure.com
Content-Length: 475
Expect: 100-continue
{
"id": "testcoll",
"indexingPolicy": {
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"dataType": "Number",
"precision": -1,
"kind": "Range"
},
{
"dataType": "String",
"precision": 3,
"kind": "Hash"
}
]
}
],
"excludedPaths": []
},
"_rid": "XrdaAKx3Hgw=",
"_ts": 1459203135,
"_self": "dbs/XrdaAA==/colls/XrdaAKx3Hgw=/",
"_etag": "\"00006c00-0000-0000-0000-56f9ac3f0000\"",
"_docs": "docs/",
"_sprocs": "sprocs/",
"_triggers": "triggers/",
"_udfs": "udfs/",
"_conflicts": "conflicts/"
}
HTTP/1.1 200 Ok
Cache-Control: no-store, no-cache
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: application/json
Content-Location: https://querydemo.documents.azure.com/dbs/XrdaAA==/colls/XrdaAKx3Hgw=
Server: Microsoft-HTTPAPI/2.0
Strict-Transport-Security: max-age=31536000
x-ms-last-state-change-utc: Fri, 25 Mar 2016 22:54:09.213 GMT
etag: "00006e00-0000-0000-0000-56f9ac400000"
x-ms-resource-quota: collections=5000;
x-ms-resource-usage: collections=28;
collection-partition-index: 0
collection-service-index: 0
x-ms-schemaversion: 1.1
x-ms-alt-content-path: dbs/testdb
x-ms-quorum-acked-lsn: 7902
x-ms-current-write-quorum: 3
x-ms-current-replica-set-size: 4
x-ms-request-charge: 9.9
x-ms-serviceversion: version=1.6.52.5
x-ms-activity-id: 6050a48c-828d-4016-b73b-5e0ce2ad6271
x-ms-session-token: M:7903
Set-Cookie: x-ms-session-token#M=7903; Domain=querydemo.documents.azure.com; Path=/dbs/XrdaAA==/colls/XrdaAKx3Hgw=
Set-Cookie: x-ms-session-token=7903; Domain=querydemo.documents.azure.com; Path=/dbs/XrdaAA==/colls/XrdaAKx3Hgw=
x-ms-gatewayversion: version=1.6.52.5
Date: Mon, 28 Mar 2016 22:12:15 GMT
{
"id": "testcoll",
"indexingPolicy": {
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"kind": "Range",
"dataType": "Number",
"precision": -1
},
{
"kind": "Hash",
"dataType": "String",
"precision": 3
}
]
}
],
"excludedPaths": []
},
"_rid": "XrdaAKx3Hgw=",
"_ts": 1459203136,
"_self": "dbs/XrdaAA==/colls/XrdaAKx3Hgw=/",
"_etag": "\"00006e00-0000-0000-0000-56f9ac400000\"",
"_docs": "docs/",
"_sprocs": "sprocs/",
"_triggers": "triggers/",
"_udfs": "udfs/",
"_conflicts": "conflicts/"
}