ドキュメントの作成
Azure Cosmos DB は、グローバル分散型のマルチモデル データベースであり、複数の API でサポートされています。 この記事では、Azure Cosmos DB 用の SQL API について説明します。
この操作により Create Document
、コレクションに新しいドキュメントが作成されます。
Request
Method | 要求 URI | 説明 |
---|---|---|
POST | https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs | {databaseaccount} は、サブスクリプションの下に作成された Azure Cosmos DB アカウントの名前です。 {db-id} 値は、システムによって生成された ID (rid) ではなく、データベースのユーザーによって生成された名前/ID です。 {coll-id} 値は、ドキュメントを含むコレクションの名前です。 |
ヘッダー
すべての Azure Cosmos DB 要求 で使用されるヘッダーについては、「共通の Azure Cosmos DB REST 要求ヘッダー」を参照してください。
ヘッダー | 必須 | Type | 説明 |
---|---|---|---|
x-ms-documentdb-is-upsert | 省略可能 | Boolean | true に設定すると、ドキュメントが存在しない場合は ID (該当する場合はパーティション キー値) を使用してドキュメントが作成されます。存在する場合はドキュメントを更新します。 |
x-ms-indexing-directive | 省略可能 | String | 許容される値は Include または Exclude です。 - Include を指定 すると、ドキュメントがインデックスに追加されます。 - [除外] を選択 すると、ドキュメントのインデックス作成が省略されます。 インデックス作成の動作の既定値は、コレクションのインデックス作成ポリシー内の automatic プロパティの値によって決定されます |
Body
プロパティ | 必須 | Type | 説明 |
---|---|---|---|
id | 必須 | String | ドキュメントを識別する一意の ID です。つまり、2 つのドキュメントで同じ ID を共有する必要はありません。 ID は 255 文字以内にする必要があります。 ID フィールドは、ID 値を指定せずにドキュメントが作成されるときに自動的に追加されます。 ただし、要求本文でカスタム値を割り当てることで、ID 値を常に更新できます。 |
<custom> | 必須 | JSON | すべてのユーザー定義 JSON。 |
{
"id": "AndersenFamily",
"LastName": "Andersen",
"Parents": [
{
"FamilyName": null,
"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": true
}
[応答]
作成されたドキュメントの本文を返します。
ヘッダー
すべての Azure Cosmos DB 応答 によって返されるヘッダーについては、「共通の Azure Cosmos DB REST 応答ヘッダー」を参照してください。
プロパティ | Type | 説明 |
---|---|---|
x-ms-request-charge | Number | 操作によって消費される要求ユニットの数。 |
x-ms-session-token | String | セッション レベルの整合性で使用される文字列トークン。 クライアントはこの値を保存し、セッション整合性のために後続の読み取り要求に設定する必要があります。 |
状態コード
次の表に、この操作で返される一般的なステータス コードを示します。 状態コードの完全な一覧については、「 HTTP 状態コード」を参照してください。
HTTP 状態コード | 説明 |
---|---|
201 Created | 操作に成功しました。 |
400 Bad Request | JSON の本文が無効です。 |
403 許可されていません | パーティションのストレージ制限に達したため、操作を完了できませんでした。 |
409 競合 | 新しいドキュメントに指定された ID は、既存のドキュメントによって取得されています。 |
413 Entity Too Large | 要求のドキュメント サイズが、許可されているドキュメント サイズを超えています。 |
Body
プロパティ | 説明 |
---|---|
_解消 | これは、システムによって生成されるプロパティです。 リソース ID (_rid) は、リソース モデル上のリソース スタックごとに階層化された一意識別子です。 ドキュメント リソースの配置と移動のために内部使用されます。 |
_Ts | これは、システムによって生成されるプロパティです。 リソースの最終更新タイムスタンプを示します。 値は、タイムスタンプです。 |
_自己 | これは、システムによって生成されるプロパティです。 リソースの一意のアドレス指定が可能な URI です。 |
_Etag | これは、オプティミスティック コンカレンシー制御に必要なリソース etag を指定するシステム生成プロパティです。 |
_添付 ファイル | これは、添付ファイル リソースのアドレス指定可能パスを指定するシステム生成プロパティです。 |
{
"id": "AndersenFamily",
"LastName": "Andersen",
"Parents": [
{
"FamilyName": null,
"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": true,
"_rid": "1KtjAImkcgwBAAAAAAAAAA==",
"_self": "dbs/1KtjAA==/colls/1KtjAImkcgw=/docs/1KtjAImkcgwBAAAAAAAAAA==/",
"_etag": "\"00003200-0000-0000-0000-56f9e84d0000\"",
"_ts": 1459218509,
"_attachments": "attachments/"
}
例
POST https://querydemo.documents.azure.com/dbs/1KtjAA==/colls/1KtjAImkcgw=/docs 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
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=602; x-ms-session-token=602
Content-Length: 344
Expect: 100-continue
{
"id": "AndersenFamily",
"LastName": "Andersen",
"Parents": [
{
"FamilyName": null,
"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": true
}
HTTP/1.1 201 Created
Cache-Control: no-store, no-cache
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: application/json
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": "AndersenFamily",
"LastName": "Andersen",
"Parents": [
{
"FamilyName": null,
"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": true,
"_rid": "1KtjAImkcgwBAAAAAAAAAA==",
"_self": "dbs/1KtjAA==/colls/1KtjAImkcgw=/docs/1KtjAImkcgwBAAAAAAAAAA==/",
"_etag": "\"00003200-0000-0000-0000-56f9e84d0000\"",
"_ts": 1459218509,
"_attachments": "attachments/"
}