Nahrazení dokumentu
Azure Cosmos DB je globálně distribuovaná databáze pro více modelů s podporou několika rozhraní API. Tento článek se věnuje rozhraní SQL API pro službu Azure Cosmos DB.
Operace Replace Document
nahradí celý obsah dokumentu.
Žádost
Metoda | Identifikátor URI žádosti | Description |
---|---|---|
PUT | https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{id_coll}/docs/{doc-id} | Všimněte si, že {databaseaccount} je název účtu služby Cosmos DB vytvořeného v rámci vašeho předplatného. Hodnota {db-id} je uživatelem vygenerované jméno nebo ID databáze, nikoli systémově vygenerované ID (RID). Hodnota {coll-id} je název kolekce. Hodnota {doc-id} je ID dokumentu, který se má nahradit. |
Hlavičky
Viz Běžné hlavičky požadavků REST služby Azure Cosmos DB pro hlavičky, které používají všechny požadavky služby Cosmos DB. Důležité hlavičky pro tento požadavek jsou:
Hlavička | Požaduje se | Typ | Description |
---|---|---|---|
x-ms-indexing-direktiva | Volitelné | Řetězec | Přijatelné hodnoty jsou Zahrnout nebo Vyloučit. Zahrnout zahrne dokument do cesty indexování, zatímco funkce Vyloučit vynechá dokument z indexování. |
x-ms-documentdb-partitionkey | Volitelné | Pole | Hodnota klíče oddílu pro dokument, který se má odstranit. Vyžaduje se, pokud a musí být zadán pouze v případě, že je kolekce vytvořena s definicí partitionKey . |
If-Match | Volitelné | Řetězec | Používá se k podmínce operace pro optimistickou souběžnost. To znamená, že dokument se aktualizuje pouze v případě, že zadaná značka etag odpovídá aktuální verzi v databázi. Hodnota by měla být nastavená na hodnotu značky prostředku. |
Text
Vlastnost | Požaduje se | Typ | Description |
---|---|---|---|
id | Vyžadováno | Řetězec | Jedná se o uživatelskou nastavitelnou vlastnost. Jedná se o jedinečný název pro identifikaci dokumentu, to znamená, že žádné dva dokumenty by neměly sdílet stejné ID. ID nesmí být delší než 255 znaků. |
<custom> | Vyžadováno | JSON | Libovolný soubor JSON definovaný uživatelem. |
{
"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"
}
Odpověď
Funkce Nahradit dokument vrátí aktualizovaný text dokumentu.
Hlavičky
Viz Běžné hlavičky odpovědi REST služby Azure Cosmos DB pro hlavičky, které jsou vráceny všemi odpověďmi služby Cosmos DB. Důležité hlavičky odpovědi pro Nahrazení dokumentu jsou následující:
Hlavička | Typ | Description |
---|---|---|
x-ms-request-charge | Číslo | Počet jednotek požadavků spotřebovaných operací. |
x-ms-session-token | Řetězec | Token řetězce používaný s konzistencí na úrovni relace. Klienti musí tuto hodnotu uložit a nastavit ji pro následné žádosti o čtení kvůli konzistenci relací. |
Stavové kódy
Následující tabulka uvádí běžné stavové kódy vrácené touto operací. Úplný seznam stavových kódů najdete v tématu Stavové kódy HTTP.
Stavový kód HTTP | Popis |
---|---|
200 Ok | Operace byla úspěšná. |
400 – Chybný požadavek | Text JSON je neplatný. Zkontrolujte, jestli nechybí složené závorky nebo uvozovky. |
404 Nenalezeno | Dokument již neexistuje, tj. dokument byl odstraněn. |
409 – Konflikt | ID zadané pro nový dokument bylo převzato existujícím dokumentem. |
413 – Příliš velká entita | Velikost dokumentu v požadavku překročila povolenou velikost dokumentu v požadavku. |
Text
Vlastnost | Popis |
---|---|
_Zbavit | Jedná se o systém vygenerovanou vlastnost. ID prostředku (_rid) je jedinečný identifikátor, který je také hierarchický podle zásobníku prostředků v modelu prostředků. Používá se interně pro umístění a navigaci v tomto prostředku dokumentu. |
_Ts | Jedná se o systém vygenerovanou vlastnost. Určuje časové razítko poslední aktualizace prostředku. Hodnota je časové razítko. |
_Vlastní | Jedná se o systém vygenerovanou vlastnost. Jedná se o jedinečný adresovatelný identifikátor URI prostředku. |
_Etag | Jedná se o systémem vygenerovanou vlastnost, která určuje etag prostředku vyžadovanou pro optimistické řízení souběžnosti. |
_Přílohy | Jedná se o systémem vygenerovanou vlastnost, která určuje adresovatelnou cestu pro prostředek příloh. |
{
"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"
}
Příklad
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"
}