Share via


コレクションを置き換える

コレクションの置換では、作成後のコレクションのインデックス作成ポリシーの変更がサポートされています。 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 これは、インデックス作成の動作が適用されるデータ型です。 StringNumberPoint*、PolygonLineString のいずれかを指定できます。 ブール値と null は自動的にインデックス付けされます
kind インデックスの種類です。 ハッシュ インデックスは等価比較に役立ちますが、 Range インデックスは等価性、範囲比較、並べ替えに役立ちます。 空間 インデックスは、空間クエリに役立ちます。
精度 インデックスの有効桁数。 最大有効桁数の場合は -1、 数値の場合は 1 から 8、 文字列の場合は 1 から 100 に設定できます。 PointPolygonLineString のデータ型には適用されません。

[除外されたパス] のプロパティ

プロパティ 説明
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/"  
}  
  

参照