ドキュメントの作成

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/"  
}  
  

参照