你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

替换文档

Azure Cosmos DB 是一种全球分布式多模型数据库,支持多个 API。 本文介绍了适用于 Azure Cosmos DB 的 SQL API。

操作 Replace Document 将替换文档的整个内容。

请求

方法 请求 URI 说明
PUT https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs/{doc-id} 请注意,{databaseaccount} 是在订阅下创建的 Cosmos DB 帐户的名称。 {db-id} 值是用户生成的数据库名称/ID,而不是系统生成的 ID (rid) 。 {coll-id} 值是集合的名称。 {doc-id} 值是要替换的文档的 ID。

标头

有关所有 Cosmos DB 请求 使用的标头,请参阅常见的 Azure Cosmos DB REST 请求标头。 此请求的重要标头包括:

标头 必需 类型 说明
x-ms-indexing-directive 可选 String 可接受的值为 IncludeExcludeInclude 将文档包含在索引路径中,而 Exclude 则从索引中省略文档。
x-ms-documentdb-partitionkey 可选 Array 要删除的文档的分区键值。 仅当使用 partitionKey 定义创建集合时,才需要指定 和 。
If-Match 可选 String 用于使操作成为乐观并发的条件。 也就是说,仅当指定的 etag 与数据库中的当前版本匹配时,才会更新文档。 值应设置为资源的 etag 值。

正文

属性 必选 类型 说明
id 必须 String 它是用户可设置的属性。 它是标识文档的唯一名称,也就是说,没有两个文档应共享相同的 IDID 不得超过 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 响应 返回的标头,请参阅常见的 Azure Cosmos DB REST 响应标头。 替换文档的重要响应标头如下:

标头 类型 说明
x-ms-request-charge Number 操作使用的请求单位数。
x-ms-session-token String 用于会话级别一致性的字符串令牌。 客户端必须保存此值,并为后续读取请求设置此值,以确保会话一致性。

状态代码

下表列出了此操作返回的常见状态代码。 有关状态代码的完整列表,请参阅 HTTP 状态代码

HTTP 状态代码 说明
200 正常 操作成功。
400 错误的请求 JSON 正文无效。 检查是否缺少大括号或引号。
404 未找到 该文档不再存在,即文档已被删除。
409 冲突 为新文档提供的 id 已被现有文档占用。
413 实体太大 请求中的文档大小已超过请求中允许的文档大小。

正文

属性 说明
_摆脱 它是 系统生成的属性。 资源 ID (_rid) 是一个唯一标识符,也是根据资源模型上的资源堆栈分层的。 它在内部用于文档资源的放置和导航。
_ts 它是系统生成的属性。 它指定资源的上次更新时间戳。 高值是一个时间戳。
_自我 它是系统生成的属性。 它是资源的唯一可寻址 URI。
_Etag 它是系统生成的属性,用于指定乐观并发控制所需的资源 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"  
}  
  

另请参阅