Исправление документа
Azure Cosmos DB — это глобально распределенная многомодельная база данных с поддержкой разных API. В этой статье рассматривается API SQL для Azure Cosmos DB.
Операция Patch Document
выполняет обновление на уровне пути для определенных файлов или свойств в одном документе.
Запрос
Метод | Универсальный код ресурса (URI) запроса | Описание |
---|---|---|
PATCH | https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{id} | {databaseaccount} — это имя учетной записи Azure Cosmos DB, созданной в вашей подписке. Значение {db-id} — это созданное пользователем имя или идентификатор базы данных, а не идентификатор, созданный системой (rid). Значение {coll-id} — это имя коллекции, содержащей документ. Идентификатор — это значение {id} в документе. |
Заголовки
Заголовки, используемые всеми запросами Azure Cosmos DB, см. в статье Общие заголовки запросов REST Azure Cosmos DB .
Заголовок | Обязательно | Тип | Описание |
---|---|---|---|
x-ms-documentdb-partitionkey | Необязательно | Array | Значение ключа секции для документа, который требуется исправить. Должен включаться только в том случае, если коллекция создана с определением partitionKey . |
Текст
Свойство | Обязательно | Тип | Описание |
---|---|---|---|
Операций | Обязательно | Array | Patch поддерживает одну или несколько операций, которые должны передаваться в виде массива. |
Одна операция
{
"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, см. в статье Общие заголовки ответов REST Azure Cosmos DB .
Свойство | Тип | Описание |
---|---|---|
x-ms-request-charge | Число | Количество единиц запросов, используемых операцией. |
x-ms-session-token | Строка | Строковый токен, используемый для согласованности на уровне сеанса. Клиенты должны сохранить это значение и задать его для последующих запросов на чтение для согласованности сеанса. |
Content-Location | Строка | URL-адрес передаваемого содержимого исправления. |
Коды состояния
В таблице ниже указаны стандартные коды состояния, возвращаемые этой операцией. Полный список кодов состояния см. в разделе Коды состояния HTTP.
Код состояния HTTP | Описание |
---|---|
200 ОК | Операция выполнена успешно. |
400 — недопустимый запрос | Недопустимый текст JSON. |
412 — Необходимое условие не выполнено | Указанное предварительное условие не выполняется |
Текст
Свойство | Описание |
---|---|
_Избавить | Это свойство, созданное системой. Идентификатор ресурса (_rid) — это уникальный идентификатор, который также является иерархическим для стека ресурсов в модели ресурсов. Он используется внутренне для размещения ресурса документа и перемещения по нему. |
_Ts | Это свойство, созданное системой. Оно представляет метку времени последнего обновления ресурса. Значение — метка времени. |
_Самостоятельно | Это свойство, созданное системой, которое содержит универсальный код ресурса (URI) для ресурса. |
_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
}