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