Поделиться через


Замена коллекции

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/"  
}  
  

См. также: