コレクションの置換では、作成後のコレクションのインデックス作成ポリシーの変更がサポートされています。 ID やパーティション キーなど、コレクションの他のプロパティの変更はサポートされていません。
注
これらの API リファレンス記事では、Azure Cosmos DB データ プレーン API を使用してリソースを作成する方法を示します。 データ プレーン API を使用すると、Cosmos DB ソフトウェア開発キット (SDK) の場合と同様に、インデックス作成ポリシー、パーティション キーなどの基本オプションを構成できます。 すべての Azure Cosmos DB リソースに対して完全な機能サポートが必要な場合は、 Cosmos DB リソース プロバイダーを使用することをお勧めします。
リクエスト
| メソッド | URI リクエスト | 説明 |
|---|---|---|
| 配置する | https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id} | {databaseaccount} は、サブスクリプションの下に作成された Azure Cosmos DB アカウントの名前です。 {db-id} 値は、システム生成の識別子 (rid) ではなく、ユーザーが生成したデータベースの名前/ID です。 {coll-id} 値は、置換されるコレクションの名前です。 |
ヘッダー
すべての Cosmos DB 要求で使用されるヘッダーについては、「 一般的な Azure Cosmos DB REST 要求ヘッダー 」を参照してください。
体
| プロパティ | 必須 | タイプ | 説明 |
|---|---|---|---|
| ID | 必須 | 糸 | ユーザーがコレクションの一意の名前を生成しました。 2 つのコレクションが同じ識別子を持つことはできません。 これは、255 文字を超えてはならない文字列です。 |
| インデックスポリシー | オプション | オブジェクト | この値は、コレクションの項目のインデックスを構成するために使用されます。 既定では、インデックス作成ポリシーは、コレクション内のすべてのドキュメント パスに対して自動に設定されています。 |
| partitionKey | 必須 | オブジェクト | この値は、データ・パーティション分割に使用されるパーティション・キーを設定します。 大きなパーティションキーを使用するには、partitionKey プロパティ内でバージョンを 2 に指定します。 REST API のバージョンが 2018-12-31 以降の場合、コレクションには partitionKey 定義が含まれている必要があります。 2018-12-31 より前のバージョンでは、 partitionKey 定義を省略し、スループットが 400 から 10,000 RU/秒の間にあることを確認することで、手動スループットを持つ従来の非パーティション分割コレクションを作成できます。 最高のパフォーマンスとスケーラビリティを得るには、常にパーティション キーを設定することをお勧めします。 適切なパーティション キーを選択する方法について説明します。 |
注
カスタムインデックスパスを設定する場合は、ドキュメントツリー全体のデフォルトのインデックス作成ルールを指定する必要があります。これは特別なパス /*で示されます。
{
"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 OK | PUT 操作は成功しました。 |
| 400 無効な要求 | JSON の本文が無効です。 中かっこや引用符の不足がないか確認してください。 |
体
| プロパティ | 説明 |
|---|---|
| 識別子 | これは、新しいコレクションを識別する一意の名前です。 |
| _rid | システムによって生成されるプロパティです。 リソース ID (_rid) は、リソースモデル上のリソーススタックごとに階層化される一意の識別子です。 これは、権限リソースの配置とナビゲーションのために内部的に使用されます。 |
| _ts | システムによって生成されるプロパティです。 リソースの最後に更新されたタイムスタンプを指定します。 値はタイムスタンプです。 |
| _自己 | システムによって生成されるプロパティです。 これは、リソースの一意のアドレス指定可能な URI です。 |
| _エタグ (Etag) | これは、オプティミスティック同時実行制御に必要なリソース etag を表すシステム生成プロパティです。 |
| _ドキュメント | これは、ドキュメント リソースのアドレス指定可能なパスを指定するシステム生成プロパティです。 |
| _sprocs | これは、ストアド・プロシージャ (sprocs) リソースのアドレス指定可能なパスを指定するシステム生成プロパティーです。 |
| _トリガー | これは、トリガー・リソースのアドレス指定可能なパスを指定するシステム生成プロパティーです。 |
| _udfs | これは、ユーザー定義関数 (udfs) リソースのアドレス指定可能なパスを指定するシステム生成プロパティです。 |
| _競合 | これは、競合リソースのアドレス指定可能なパスを指定するシステム生成プロパティです。 コレクション内のリソースに対する操作中に競合が発生した場合、ユーザーは競合 URI パスで GET を実行することで、競合するリソースを検査できます。 |
| インデックスポリシー(いんでっくすいんぐ | これは、収集用のインデックス作成ポリシー設定です。 |
| partitionKey | これは、収集用のパーティション構成設定です。 |
[含まれるパス] の下のプロパティ
| プロパティ | 説明 |
|---|---|
| パス | インデックス作成動作が適用されるパス。 インデックス パスはルート (/) で始まり、通常は ? ワイルドカード演算子は、プレフィックスに複数の値があることを示します。 たとえば、SELECT * FROM Families F WHERE F.familyName = "Andersen" を提供するには、/familyName/? コレクションのインデックスポリシーで。 インデックス パスでは、* ワイルドカード演算子を使用して、プレフィックスの下でパスの動作を再帰的に指定することもできます。 たとえば、/payload/* を使用して、payload プロパティの下にあるすべてのものをインデックス作成から除外できます。 |
| データタイプ | これは、インデックス作成動作が適用されるデータ型です。 String、Number、Point*、Polygon、または LineString を指定できます。 ブール値と null は自動的にインデックス化されます |
| kind | インデックスの種類。 ハッシュ インデックスは等価性比較に役立ち、 範囲 インデックスは等価性、範囲比較、並べ替えに役立ちます。 空間インデックス は、空間クエリに役立ちます。 |
| 精度 | インデックスの有効桁数。 最大の精度を得るには -1 に設定するか 、数値の場合は1〜8、 文字列の場合は1〜100に設定できます。 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 を する