Sostituzione di un documento
Azure Cosmos DB è un database multimodello distribuito a livello globale con supporto per più API. Questo articolo illustra l'API SQL per Azure Cosmos DB.
L'operazione Replace Document
sostituisce l'intero contenuto di un documento.
Richiesta
Metodo | URI richiesta | Descrizione |
---|---|---|
PUT | https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-id} | Si noti che {databaseaccount} è il nome dell'account Cosmos DB creato nella sottoscrizione. Il valore {db-id} è il nome/ID generato dall'utente del database, non l'ID generato dal sistema (rid). Il valore {coll-id} è il nome della raccolta. Il valore {doc-id} è l'ID del documento da sostituire. |
Intestazioni
Vedere Intestazioni di richiesta REST comuni di Azure Cosmos DB per le intestazioni usate da tutte le richieste di Cosmos DB. Le intestazioni importanti per questa richiesta sono:
Intestazione | Obbligatoria | Tipo | Descrizione |
---|---|---|---|
x-ms-indexing-directive | Facoltativo | String | I valori accettabili sono Include o Exclude. Include il documento nel percorso di indicizzazione mentre Exclude omette il documento dall'indicizzazione. |
x-ms-documentdb-partitionkey | Facoltativo | Array | Valore della chiave di partizione per il documento da eliminare. Obbligatorio se e deve essere specificato solo se la raccolta viene creata con una definizione partitionKey . |
If-Match | Facoltativo | String | Usato per rendere condizionale l'operazione per la concorrenza ottimistica. Ovvero, il documento viene aggiornato solo se l'etag specificato corrisponde alla versione corrente nel database. Il valore deve essere impostato sul valore etag della risorsa. |
Corpo
Proprietà | Obbligatoria | Tipo | Descrizione |
---|---|---|---|
id | Necessario | string | Si tratta di una proprietà impostabile dall'utente. Si tratta di un nome univoco per identificare un documento, ovvero nessun documento deve condividere lo stesso ID. L'ID non deve superare i 255 caratteri. |
<custom> | Necessario | JSON | Qualsiasi JSON definito dall'utente. |
{
"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"
}
Risposta
Sostituisci documento restituisce il corpo aggiornato del documento.
Intestazioni
Vedere Intestazioni di risposta REST comuni di Azure Cosmos DB per le intestazioni restituite da tutte le risposte di Cosmos DB. Le intestazioni di risposta importanti per Sostituisci documento sono le seguenti:
Intestazione | Tipo | Descrizione |
---|---|---|
x-ms-request-charge | Number | Numero di unità richiesta utilizzate dall'operazione. |
x-ms-session-token | string | Token stringa usato con coerenza a livello di sessione. I client devono salvare questo valore e impostarlo per le successive richieste di lettura per la coerenza della sessione. |
Codici di stato
La seguente tabella elenca i codici di stato comuni restituiti da questa operazione. Per un elenco completo dei codici di stato, vedere Codici di stato HTTP.
Codice di stato HTTP | Descrizione |
---|---|
200 Ok | L'operazione è stata completata. |
400 - Richiesta non valida | Il corpo JSON non è valido. Controllare parentesi graffe o virgolette mancanti. |
404 - Non trovato | Il documento non esiste più, ossia è stato eliminato. |
409 - Conflitto | Il valore di id fornito per il nuovo documento è stato eseguito da un documento esistente. |
413 Entity Too Large | Le dimensioni del documento nella richiesta hanno superato le dimensioni di documento consentite in una richiesta. |
Corpo
Proprietà | Descrizione |
---|---|
_liberarsi | Si tratta di una proprietà generata dal sistema. L'ID risorsa (_rid) è un identificatore univoco gerarchico anche per ogni stack di risorse nel modello di risorse. Viene usato internamente per il posizionamento e l'esplorazione della risorsa documento. |
_Ts | Si tratta di una proprietà generata dal sistema. Indica il timestamp dell'ultimo aggiornamento della risorsa. Il valore è un timestamp. |
_stesso | Si tratta di una proprietà generata dal sistema. URI indirizzabile univoco per la risorsa. |
_Etag | Si tratta di una proprietà generata dal sistema che specifica l'etag della risorsa necessaria per il controllo di concorrenza ottimistica. |
_Allegati | Si tratta di una proprietà generata dal sistema che specifica il percorso indirizzabile per la risorsa allegati. |
{
"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"
}
Esempio
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"
}