你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

替换集合

替换集合支持在创建集合后更改索引策略。 不支持更改集合的其他属性,如 ID 或分区键。

注释

这些 API 参考文章介绍如何使用 Azure Cosmos DB 数据平面 API 创建资源。 使用数据平面 API,可以配置基本选项,例如索引策略、分区键,就像使用 Cosmos DB 软件开发工具包 (SDK) 一样。 如果需要对所有 Azure Cosmos DB 资源提供完整的功能支持,建议使用 Cosmos DB 资源提供程序

请求

方法 请求 URI DESCRIPTION
PUT https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id} {databaseaccount} 是在订阅下创建的 Azure Cosmos DB 帐户的名称。 {db-id} 值是用户生成的数据库名称/ID,而不是系统生成的标识符 (rid)。 {coll-id} 值是要替换的集合的名称。

标头

有关所有 Cosmos DB 请求使用的标头,请参阅 常见的 Azure Cosmos DB REST 请求标头

身体

资产 必选 类型 DESCRIPTION
id 必选 字符串 用户为集合生成的唯一名称。 没有两个集合不能具有相同的标识符。 这是一个不得超过 255 个字符的字符串。
索引策略 可选 物体 此值用于配置集合项的索引。 默认情况下,集合中的所有文档路径的索引策略都设置为自动。
partitionKey 必选 物体 此值设置用于数据分区的分区键。

若要使用大型分区键,请在 partitionKey 属性中将版本指定为 2。

如果 REST API 版本为 2018-12-31 或更高版本,则集合必须包含 partitionKey 定义。 在 2018-12-31 之前的版本中,可以通过省略 partitionKey 定义并确保吞吐量在 400 - 10,000 RU/s 之间来创建具有手动吞吐量的旧版非分区集合。 为了获得最佳性能和可伸缩性,建议始终设置分区键。

了解如何 选择合适的分区键

注释

设置自定义索引路径时,需要为整个文档树指定默认索引规则,该规则由特殊路径 /*表示。

{  
  "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 响应返回的标头,请参阅 常见的 Azure Cosmos DB REST 响应标头

状态代码

下表列出了此作返回的常见状态代码。 有关状态代码的完整列表,请参阅 HTTP 状态代码

Code DESCRIPTION
201 好 PUT作成功。
400 错误的请求 JSON 正文无效。 检查是否缺少大括号或引号。

身体

资产 DESCRIPTION
id 它是标识新集合的唯一名称。
_rid 它是系统生成的属性。 资源 ID (_rid) 是一个唯一标识符,也是资源模型上每个资源堆栈的分层标识符。 它在内部用于放置和导航权限资源。
_ts 它是系统生成的属性。 它指定资源的上次更新时间戳。 该值是时间戳。
_自我 它是系统生成的属性。 它是资源的唯一可寻址 URI。
_etag 它是系统生成的属性,表示乐观并发控制所需的资源 etag。
_医生 它是系统生成的属性,用于指定文档资源的可寻址路径。
_sprocs 它是系统生成的属性,用于指定存储过程 (sprocs) 资源的可寻址路径。
_触发器 它是系统生成的属性,用于指定触发器资源的可寻址路径。
_udfs 它是系统生成的属性,用于指定用户定义函数 (udfs) 资源的可寻址路径。
_冲突 它是系统生成的属性,用于指定冲突资源的可寻址路径。 在对集合中的资源执行作期间,如果发生冲突,用户可以通过对冲突 URI 路径执行 GET 来检查冲突的资源。
indexingPolicy (索引策略) 这是用于收集的索引策略设置。
partitionKey 它是用于收集的分区配置设置。

包含路径下的属性

资产 DESCRIPTION
路径 索引行为适用的路径。 索引路径以根 (/) 开头,通常以 ? 通配符运算符,表示前缀有多个可能的值。 例如,要提供 SELECT * FROM Families F WHERE F.familyName = “Andersen”,必须包括 /familyName/? 在集合的索引策略中。

索引路径还可以使用 * 通配符运算符在前缀下递归指定路径的行为。 例如,/payload/* 可用于从索引中排除 payload 属性下的所有内容。
数据类型 它是应用索引行为的数据类型。 可以是 StringNumberPoint*、 PolygonLineString。 布尔值和空值会自动编制索引
kind 索引的类型。 哈希 索引对于相等比较很有用,而 范围 索引对于相等、范围比较和排序很有用。 空间 索引对于空间查询很有用。
精准率 索引的精度。 可以设置为 -1 以获得最大精度,也可以设置为 1-8 以获得最大精度,也可以设置为 1-8 以获得字符串。 不适用于 PointPolygonLineString 数据类型。

排除路径下的属性

资产 DESCRIPTION
路径 从索引中排除的路径。 索引路径以根 (/) 开头,通常以 * 通配符运算符结尾。 例如,/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/"  
}  
  

另请参阅