コレクションを置き換える
コレクションの置換では、作成後のコレクションのインデックス作成ポリシーの変更がサポートされています。 ID やパーティション キーなどのコレクションの他のプロパティの変更はサポートされていません。
注意
これらの API リファレンス記事では、Azure Cosmos DB データ プレーン API を使用してリソースを作成する方法について説明します。 データ プレーン API を使用すると、Cosmos DB SDK と同様に、インデックス作成ポリシー、パーティション キーなどの基本的なオプションを構成できます。 すべての Azure Cosmos DB リソースの完全な機能サポートが必要な場合は、 Cosmos DB リソース プロバイダーを使用することをお勧めします。
Request
Method | 要求 URI | 説明 |
---|---|---|
PUT | https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id} | {databaseaccount} は、サブスクリプションの下に作成された Azure Cosmos DB アカウントの名前です。 {db-id} 値は、システムによって生成された ID (rid) ではなく、データベースのユーザーによって生成された名前/ID です。 {coll-id} 値は、置き換えるコレクションの名前です。 |
ヘッダー
すべての Cosmos DB 要求 で使用されるヘッダーについては、「共通の Azure Cosmos DB REST 要求ヘッダー」を参照してください。
Body
プロパティ | 必須 | Type | 説明 |
---|---|---|---|
id | 必須 | String | ユーザーによって生成されるコレクションの一意の名前。 複数のコレクションが同じ id を持つことはありません。 255 文字以下の文字列です。 |
indexingPolicy | 省略可能 | Object | この値は、コレクションの項目のインデックスを構成するために使用されます。 既定では、インデックス作成ポリシーは、コレクション内のすべてのドキュメント パスに対して自動に設定されます。 |
partitionKey | 必須 | Object | この値は、データのパーティション分割に使用されるパーティション キーを設定します。 大きなパーティション キーを使用するには、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 状態コード」を参照してください。
コード | 説明 |
---|---|
201 OK | PUT 操作は成功しました。 |
400 Bad Request | JSON の本文が無効です。 中かっこや引用符の不足がないか確認してください。 |
Body
プロパティ | 説明 |
---|---|
id | これは、新しいコレクションを識別する一意の名前です。 |
_rid | これは、システムによって生成されるプロパティです。 リソース ID (_rid) は一意の識別子であり、リソース モデルのリソース スタックごとの階層も示します。 アクセス許可リソースの配置およびナビゲーションのために内部的に使用されます。 |
_ts | これは、システムによって生成されるプロパティです。 リソースの最終更新タイムスタンプを示します。 値は、タイムスタンプです。 |
_self | これは、システムによって生成されるプロパティです。 リソースの一意のアドレス指定が可能な URI です。 |
_etag | これは、オプティミスティック コンカレンシー制御に必要なリソース etag を表すシステム生成プロパティです。 |
_doc | これは、ドキュメント リソースのアドレス指定可能パスを指定するシステム生成プロパティです。 |
_sprocs | これは、ストアド プロシージャ (sprocs) リソースのアドレス指定可能パスを指定するシステム生成プロパティです。 |
_triggers | トリガー リソースのアドレス指定可能パスを指定するシステム生成プロパティです。 |
_udfs | これは、ユーザー定義関数 (udfs) リソースのアドレス指定可能パスを指定するシステム生成プロパティです。 |
_conflicts | これは、競合するリソースのアドレス指定可能パスを指定するシステム生成プロパティです。 コレクション内のリソースに対する操作で競合が発生した場合は、ユーザーが競合の URI パスに GET を実行して、競合しているリソースを検査することができます。 |
indexingPolicy | コレクションのインデックス作成ポリシー設定です。 |
partitionKey | コレクションのパーティション分割構成設定です。 |
[インクルード パス] のプロパティ
プロパティ | 説明 |
---|---|
path | インデックス作成の動作が適用されるパス。 インデックスのパスはルート (/) で始まり、通常、 ? ワイルドカード演算子で終わります。これは、プレフィックスに複数の可能な値があることを示します。 たとえば、SELECT * FROM Families F WHERE F.familyName = "Andersen" を処理するには、コレクションのインデックス ポリシーに /familyName/? の インデックスのパスを含める必要があります。 インデックスのパスは * ワイルドカード演算子を使用して、プレフィックスの後ろに続くパスの動作を再帰的に指定することもできます。 たとえば、/payload/* を使用して、ペイロード プロパティの下に属するものをすべてインデックス作成から除外できます。 |
dataType | これは、インデックス作成の動作が適用されるデータ型です。 String、Number、Point*、Polygon、LineString のいずれかを指定できます。 ブール値と null は自動的にインデックス付けされます |
kind | インデックスの種類です。 ハッシュ インデックスは等価比較に役立ちますが、 Range インデックスは等価性、範囲比較、並べ替えに役立ちます。 空間 インデックスは、空間クエリに役立ちます。 |
精度 | インデックスの有効桁数。 最大有効桁数の場合は -1、 数値の場合は 1 から 8、 文字列の場合は 1 から 100 に設定できます。 Point、Polygon、LineString のデータ型には適用されません。 |
[除外されたパス] のプロパティ
プロパティ | 説明 |
---|---|
path | インデックス作成から除外されるパス。 インデックス パスはルート (/) で始まり、通常は * ワイルドカード演算子で終わる。 たとえば、/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/"
}