替換集合支援在創建集合后更改索引策略。 不支援更改集合的其他屬性,如ID或分區鍵。
備註
這些 API 參考文章介紹如何使用 Azure Cosmos DB 數據平面 API 建立資源。 使用數據平面 API,可以配置基本選項,例如索引策略、分區鍵,就像使用 Cosmos DB 軟體開發工具包 (SDK) 一樣。 如果需要對所有 Azure Cosmos DB 資源提供完整的功能支援,建議使用 Cosmos DB 資源提供程式。
請求
| 方法 | 請求網址識別碼 (URI) | 說明 |
|---|---|---|
| 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 請求標頭 。
身體
| 房產 | 為必填項目 | 類型 | 說明 |
|---|---|---|---|
| 識別碼 | 為必填項目 | 繩子 | 使用者為集合生成的唯一名稱。 沒有兩個集合不能具有相同的標識碼。 這是一個不得超過 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 | 說明 |
|---|---|
| 201 好 | PUT作成功。 |
| 400 錯誤的請求 | JSON 內文無效。 檢查是否缺少大括號或引號。 |
身體
| 房產 | 說明 |
|---|---|
| 識別碼 | 它是標識新集合的唯一名稱。 |
| _rid | 它是系統產生的屬性。 資源 ID (_rid) 是一個唯一識別碼,也是資源模型上每個資源堆疊的分層識別碼。 它在內部用於放置和導航許可權資源。 |
| _ts | 它是系統產生的屬性。 它會指定資源上次更新的時間戳。 值為時間戳。 |
| _自我 | 它是系統產生的屬性。 這是資源的唯一可尋址 URI。 |
| _etag | 它是系統生成的屬性,表示樂觀併發控制所需的資源 etag。 |
| _醫生 | 它是系統生成的屬性,用於指定文件資源的可尋址路徑。 |
| _sprocs | 它是系統生成的屬性,用於指定存儲過程 (sprocs) 資源的可尋址路徑。 |
| _觸發器 | 它是系統生成的屬性,用於指定觸發器資源的可尋址路徑。 |
| _udfs | 它是系統生成的屬性,用於指定使用者定義函數 (udfs) 資源的可尋址路徑。 |
| _衝突 | 它是系統生成的屬性,用於指定衝突資源的可尋址路徑。 在對集合中的資源執行作期間,如果發生衝突,用戶可以通過對衝突 URI 路徑執行 GET 來檢查衝突的資源。 |
| indexingPolicy (索引策略) | 這是用於收集的索引策略設置。 |
| partitionKey | 它是用於收集的分區配置設置。 |
包含路徑下的屬性
| 房產 | 說明 |
|---|---|
| 路徑 | 索引行為適用的路徑。 索引路徑以根 (/) 開頭,通常以 ? 通配符運算符,表示前綴有多個可能的值。 例如,要提供 SELECT * FROM Families F WHERE F.familyName = “Andersen”,必須包括 /familyName/? 在集合的索引策略中。 索引路徑還可以使用 * 通配符運算子在前綴下遞歸指定路徑的行為。 例如,/payload/* 可用於從索引中排除 payload 屬性下的所有內容。 |
| 數據類型 | 它是應用索引行為的數據類型。 可以是 String、 Number、 Point*、 Polygon 或 LineString。 布爾值和空值會自動編製索引 |
| 類型 | 索引的類型。 哈希 索引對於相等比較很有用,而 範圍 索引對於相等、範圍比較和排序很有用。 空間 索引對於空間查詢很有用。 |
| 精確度 | 索引的有效位數。 可以設置為 -1 以獲得最大精度,也可以設置為 1-8 以獲得最大精度,也可以設置為 1-8 以獲得字串。 不適用於 Point、 Polygon 和 LineString 數據類型。 |
排除路徑下的屬性
| 房產 | 說明 |
|---|---|
| 路徑 | 從索引中排除的路徑。 索引路徑以根 (/) 開頭,通常以 * 通配符運算子結尾。 例如,/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/"
}
另請參閱
- Azure Cosmos DB
- Azure Cosmos DB SQL API
- Azure Cosmos DB SQL API SDK
- 從 .NET 範例 REST