ドキュメントの置換

Azure Cosmos DB は、グローバル分散型のマルチモデル データベースであり、複数の API でサポートされています。 この記事では、Azure Cosmos DB 用の SQL API について説明します。

操作 Replace Document は、ドキュメントの内容全体を置き換える操作です。

Request

Method 要求 URI 説明
PUT https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-name} {databaseaccount} は、サブスクリプションで作成Cosmos DB アカウントの名前です。 {db-id} 値は、システムによって生成された ID (rid) ではなく、データベースのユーザーが生成した名前/ID です。 {coll-id} 値はコレクションの名前です。 {doc-name} 値は、置き換えるドキュメントの名前です。

ヘッダー

すべてのDB 要求でCosmosされるヘッダーについては、「一般的な Azure Cosmos DB REST 要求ヘッダー Cosmos参照してください。 この要求の重要なヘッダーは次のとおりです。

ヘッダー 必須 種類 説明
x-ms-indexing-directive 省略可能 String 指定できる値は 、Include または Exclude ですInclude はインデックス作成パスにドキュメントを含め 、Exclude はドキュメントをインデックス作成から除外します。
x-ms-documentdb-partitionkey 省略可能 Array 削除するドキュメントのパーティション キー値。 コレクションが partitionKey 定義で作成された場合にのみ、 と を指定 する必要がある場合は必須 です。
If-Match 省略可能 String オプティミスティック コンカレンシーの操作を条件付きで行う場合に使用します。 つまり、指定した etag がデータベースの現在のバージョンと一致する場合にのみ、ドキュメントが更新されます。 値は、リソースの etag 値に設定する必要があります。

Body

プロパティ 必須 種類 説明
id 必須 String これは、ユーザーが設定可能なプロパティです。 これは、ドキュメントを識別するための一意の名前です。つまり、同じ ID を共有する必要がある 2 つのドキュメント はありません。 ID 255 文字を超えることはできません。
<custom> 必須 JSON すべてのユーザー定義 JSON。
{  
  "id": "_SalesOrder5",  
  "AccountNumber": "NewUser01",  
  "PurchaseOrderNumber": "PO18009186470",  
  "OrderDate": "2016-03-29T02:03:07.3526153Z",  
  "Total": 5.95,  
  "_rid": "d9RzAJRFKgwEAAAAAAAAAA==",  
  "_self": "dbs/d9RzAA==/colls/d9RzAJRFKgw=/docs/d9RzAJRFKgwEAAAAAAAAAA==/",  
  "_etag": "\"0000de86-0000-0000-0000-56f9e25c0000\"",  
  "_ts": 1459216988,  
  "_attachments": "attachments/",  
  "shippedDate": "2016-03-29T02:03:07.4680723Z",  
  "foo": "bar"  
}  
  

Response

[ドキュメントの置換] は、更新されたドキュメント本文を返します。

ヘッダー

すべてのDB 応答によってCosmosされるヘッダーについては、一般的な Azure Cosmos DB REST 応答ヘッダーに関するCosmos参照してください。 ドキュメントの置換に関する重要な応答ヘッダーは次のとおりです。

ヘッダー 種類 説明
x-ms-request-charge Number 操作によって使用される要求ユニットの数。
x-ms-session-token String セッション レベルの整合性で使用される文字列トークン。 クライアントは、この値を保存し、セッション整合性のために後続の読み取り要求に設定する必要があります。

状態コード

次の表に、この操作で返される一般的なステータス コードを示します。 状態コードの完全な一覧については、「HTTP 状態コード 」を参照してください

HTTP 状態コード 説明
200 Ok 操作に成功しました。
400 Bad Request JSON の本文が無効です。 中かっこや引用符の不足がないか確認してください。
404 見つかりません ドキュメントが存在しません (つまり、ドキュメントは削除されています)。
409 競合 新しいドキュメント用に指定した id が、既存のドキュメントによって取得されています。
413 Entity Too Large 要求のドキュメント サイズが、要求で許可されているドキュメント サイズを超えています。

Body

プロパティ 説明
_rid これは、システム によって生成されるプロパティ です。 リソース ID ( _rid ) は、リソース モデル上のリソース スタックごとに階層化された一意の識別子です。 ドキュメント リソースの配置と移動のために内部使用されます。
_ts これはシステムによって生成されるプロパティです。 リソースの最終更新タイムスタンプを示します。 値は、タイムスタンプです。
_self これはシステムによって生成されるプロパティです。 リソースの一意のアドレス指定が可能な URI です。
_etag オプティミスティック コンカレンシー制御に必要なリソース etag を指定する、システムによって生成されるプロパティです。
_attachments これは、添付ファイルリソースのアドレス指定可能なパスを指定する、システムによって生成されるプロパティです。
{  
  "id": "_SalesOrder5",  
  "AccountNumber": "NewUser01",  
  "PurchaseOrderNumber": "PO18009186470",  
  "OrderDate": "2016-03-29T02:03:07.3526153Z",  
  "Total": 5.95,  
  "_rid": "d9RzAJRFKgwEAAAAAAAAAA==",  
  "_self": "dbs/d9RzAA==/colls/d9RzAJRFKgw=/docs/d9RzAJRFKgwEAAAAAAAAAA==/",  
  "_etag": "\"0000df86-0000-0000-0000-56f9e25c0000\"",  
  "_ts": 1459216988,  
  "_attachments": "attachments/",  
  "shippedDate": "2016-03-29T02:03:07.4680723Z",  
  "foo": "bar"  
}  
  

PUT https://querydemo.documents.azure.com/dbs/d9RzAA==/colls/d9RzAJRFKgw=/docs/d9RzAJRFKgwEAAAAAAAAAA== HTTP/1.1  
x-ms-documentdb-partitionkey: []  
x-ms-date: Tue, 29 Mar 2016 02:03:07 GMT  
authorization: type%3dmaster%26ver%3d1.0%26sig%3dP7DBdb6lXOnL55kXRL2L%2frt3PE8kybJCIT%2ffViY7UhU%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  
Cookie: x-ms-session-token#0=777; x-ms-session-token=777  
Content-Length: 405  
Expect: 100-continue  
  
{  
  "id": "_SalesOrder5",  
  "AccountNumber": "NewUser01",  
  "PurchaseOrderNumber": "PO18009186470",  
  "OrderDate": "2016-03-29T02:03:07.3526153Z",  
  "Total": 5.95,  
  "_rid": "d9RzAJRFKgwEAAAAAAAAAA==",  
  "_self": "dbs/d9RzAA==/colls/d9RzAJRFKgw=/docs/d9RzAJRFKgwEAAAAAAAAAA==/",  
  "_etag": "\"0000de86-0000-0000-0000-56f9e25c0000\"",  
  "_ts": 1459216988,  
  "_attachments": "attachments/",  
  "shippedDate": "2016-03-29T02:03:07.4680723Z",  
  "foo": "bar"  
}  
  
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/d9RzAA==/colls/d9RzAJRFKgw=/docs/d9RzAJRFKgwEAAAAAAAAAA==  
Server: Microsoft-HTTPAPI/2.0  
Strict-Transport-Security: max-age=31536000  
x-ms-last-state-change-utc: Fri, 25 Mar 2016 21:55:47.482 GMT  
etag: "0000df86-0000-0000-0000-56f9e25c0000"  
x-ms-resource-quota: documentSize=10240;documentsSize=10485760;collectionSize=10485760;  
x-ms-resource-usage: documentSize=0;documentsSize=3;collectionSize=3;  
x-ms-schemaversion: 1.1  
x-ms-alt-content-path: dbs/testdb/colls/testcoll  
x-ms-quorum-acked-lsn: 777  
x-ms-current-write-quorum: 3  
x-ms-current-replica-set-size: 4  
x-ms-request-charge: 10.67  
x-ms-serviceversion: version=1.6.52.5  
x-ms-activity-id: a86cddb9-75f6-423e-8d42-f6b5ac817209  
x-ms-session-token: 0:778  
Set-Cookie: x-ms-session-token#0=778; Domain=querydemo.documents.azure.com; Path=/dbs/d9RzAA==/colls/d9RzAJRFKgw=  
Set-Cookie: x-ms-session-token=778; Domain=querydemo.documents.azure.com; Path=/dbs/d9RzAA==/colls/d9RzAJRFKgw=  
x-ms-gatewayversion: version=1.6.52.5  
Date: Tue, 29 Mar 2016 02:03:07 GMT  
  
{  
  "id": "_SalesOrder5",  
  "AccountNumber": "NewUser01",  
  "PurchaseOrderNumber": "PO18009186470",  
  "OrderDate": "2016-03-29T02:03:07.3526153Z",  
  "Total": 5.95,  
  "_rid": "d9RzAJRFKgwEAAAAAAAAAA==",  
  "_self": "dbs/d9RzAA==/colls/d9RzAJRFKgw=/docs/d9RzAJRFKgwEAAAAAAAAAA==/",  
  "_etag": "\"0000df86-0000-0000-0000-56f9e25c0000\"",  
  "_ts": 1459216988,  
  "_attachments": "attachments/",  
  "shippedDate": "2016-03-29T02:03:07.4680723Z",  
  "foo": "bar"  
}  
  

参照