ドキュメントへのパッチ適用
Azure Cosmos DB は、グローバル分散型のマルチモデル データベースであり、複数の API でサポートされています。 この記事では、Azure Cosmos DB 用の SQL API について説明します。
この Patch Document
操作では、1 つのドキュメント内の特定のファイル/プロパティに対するパス レベルの更新が行われます。
Request
Method | 要求 URI | 説明 |
---|---|---|
PATCH | https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{id} | {databaseaccount} は、サブスクリプションの下に作成された Azure Cosmos DB アカウントの名前です。 {db-id} 値は、システムによって生成された ID (rid) ではなく、データベースのユーザーが生成した名前/ID です。 {coll-id} 値は、ドキュメントを含むコレクションの名前です。 id は、ドキュメント内の {id} の値です |
ヘッダー
すべての Azure Cosmos DB 要求 で使用されるヘッダーについては、「共通の Azure Cosmos DB REST 要求ヘッダー」を参照してください。
ヘッダー | 必須 | Type | 説明 |
---|---|---|---|
x-ms-documentdb-partitionkey | 省略可能 | Array | 修正プログラムを適用するドキュメントのパーティション キーの値。 partitionKey 定義を使用してコレクションが作成される場合にのみ、 と を含む必要があります。 |
Body
プロパティ | 必須 | Type | 説明 |
---|---|---|---|
operations | 必須 | Array | Patch では、 配列として渡す必要がある 1 つまたは複数の操作がサポートされます |
1 回の操作
{
"operations": [
{
"op": "set",
"path": "/Parents/0/FamilyName",
"value": "Bob"
}
]
}
複数の操作
{
"operations":[
{
"op":"add",
"path":"/Parents/0/ZipCode",
"value":80000
},
{
"op": "set",
"path": "/Parents/0/FamilyName",
"value": "Bob"
}
]
}
条件付きパッチ操作
{
"condition":"from c where c.Address.ZipCode ='98101' ",
"operations":[
{
"op":"replace",
"path":"/Address/ZipCode",
"value":98107
}
]
}
[応答]
修正プログラムが適用されたドキュメントの本文を返します。
ヘッダー
すべての Azure Cosmos DB 応答 によって返されるヘッダーについては、「共通の Azure Cosmos DB REST 応答ヘッダー」を参照してください。
プロパティ | Type | 説明 |
---|---|---|
x-ms-request-charge | Number | 操作で使用された要求ユニットの数。 |
x-ms-session-token | String | セッション レベルの整合性で使用される文字列トークン。 クライアントは、この値を保存し、セッション整合性のために後続の読み取り要求用に設定する必要があります。 |
Content-Location | String | 渡されるパッチ コンテンツの URL。 |
状態コード
次の表に、この操作で返される一般的なステータス コードを示します。 状態コードの完全な一覧については、「 HTTP 状態コード」を参照してください。
HTTP 状態コード | 説明 |
---|---|
200 OK | 操作に成功しました。 |
400 Bad Request | JSON の本文が無効です。 |
412 Precondition Failed | 指定された事前条件が満たされていません |
Body
プロパティ | 説明 |
---|---|
_解消 | これは、システムによって生成されるプロパティです。 リソース ID (_rid) は、リソース モデルのリソース スタックごとに階層化される一意識別子です。 ドキュメント リソースの配置と移動のために内部使用されます。 |
_Ts | これは、システムによって生成されるプロパティです。 リソースの最終更新タイムスタンプを示します。 値は、タイムスタンプです。 |
_自己 | これは、リソースの URI を持つシステム生成のプロパティです。 |
_Etag | これは、オプティミスティック コンカレンシー制御に必要なリソース etag を指定するシステム生成プロパティです。 |
_添付 ファイル | これは、添付ファイル リソースのアドレス指定可能なパスを指定する、システムによって生成されたプロパティです。 |
{
"id": "Andersen.1",
"LastName": "Andersen",
"Parents": [
{
"FamilyName": "Bob",
"FirstName": "Thomas"
},
{
"FamilyName": null,
"FirstName": "Mary Kay"
}
],
"Children": [
{
"FamilyName": null,
"FirstName": "Henriette Thaulow",
"Gender": "female",
"Grade": 5,
"Pets": [
{
"GivenName": "Fluffy"
}
]
}
],
"Address": {
"State": "WA",
"County": "King",
"City": "Seattle"
},
"IsRegistered": false,
"_rid": "2pFqAMMTYY8BAAAAAAAAAA==",
"_self": "dbs/2pFqAA==/colls/2pFqAMMTYY8=/docs/2pFqAMMTYY8BAAAAAAAAAA==/",
"_etag": "\"00000000-0000-0000-d40e-691edfa901d7\"",
"_attachments": "attachments/",
"_ts": 1636313638
}
例
PATCH https://querydemo.documents.azure.com/dbs/FamilyDatabase/colls/FamilyContainer/docs/Andersen.1 HTTP/1.1
x-ms-documentdb-partitionkey: ["Andersen"]
x-ms-date: Tue, 29 Mar 2016 02:28:29 GMT
Authorization: type%3dmaster%26ver%3d1.0%26sig%3d92WMAkQv0Zu35zpKZD%2bcGSH%2b2SXd8HGxHIvJgxhO6%2fs%3d
Content-Type:application/json_patch+json
Cache-Control: no-cache
User-Agent: Microsoft.Azure.DocumentDB/2.16.12
x-ms-version: 2015-12-16
Accept: application/json
Host: querydemo.documents.azure.com
Cookie: x-ms-session-token#0=602; x-ms-session-token=602
Content-Length: calculated when request is sent
Connection: keep-alive
{"operations":[{ "op" :"set", "path":"/Parents/0/FamilyName","value":"Bob" }]}
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/FamilyDatabase/colls/FamilyContainer/docs/Andersen.1
Server: Microsoft-HTTPAPI/2.0
Strict-Transport-Security: max-age=31536000
x-ms-last-state-change-utc: Fri, 25 Mar 2016 22:39:02.501 GMT
etag: "00003200-0000-0000-0000-56f9e84d0000"
x-ms-resource-quota: documentSize=10240;documentsSize=10485760;collectionSize=10485760;
x-ms-resource-usage: documentSize=0;documentsSize=1;collectionSize=1;
x-ms-schemaversion: 1.1
x-ms-alt-content-path: dbs/testdb/colls/testcoll
x-ms-quorum-acked-lsn: 602
x-ms-current-write-quorum: 3
x-ms-current-replica-set-size: 4
x-ms-request-charge: 12.38
x-ms-serviceversion: version=1.6.52.5
x-ms-activity-id: 856acd38-320d-47df-ab6f-9761bb987668
x-ms-session-token: 0:603
Set-Cookie: x-ms-session-token#0=603; Domain=querydemo.documents.azure.com; Path=/dbs/1KtjAA==/colls/1KtjAImkcgw=
Set-Cookie: x-ms-session-token=603; Domain=querydemo.documents.azure.com; Path=/dbs/1KtjAA==/colls/1KtjAImkcgw=
x-ms-gatewayversion: version=1.6.52.5
Date: Tue, 29 Mar 2016 02:28:30 GMT
{
"id": "Andersen.1",
"LastName": "Andersen",
"Parents": [
{
"FamilyName": "Bob",
"FirstName": "Thomas"
},
{
"FamilyName": null,
"FirstName": "Mary Kay"
}
],
"Children": [
{
"FamilyName": null,
"FirstName": "Henriette Thaulow",
"Gender": "female",
"Grade": 5,
"Pets": [
{
"GivenName": "Fluffy"
}
]
}
],
"Address": {
"State": "WA",
"County": "King",
"City": "Seattle"
},
"IsRegistered": false,
"_rid": "2pFqAMMTYY8BAAAAAAAAAA==",
"_self": "dbs/2pFqAA==/colls/2pFqAMMTYY8=/docs/2pFqAMMTYY8BAAAAAAAAAA==/",
"_etag": "\"00000000-0000-0000-d464-a585d94d01d7\"",
"_attachments": "attachments/",
"_ts": 1636350676
}