문서 쿼리

Cosmos DB의 "colls" 리소스에 대해 게시물을 수행하여 컬렉션에서 임의의 json 문서를 쿼리할 수 있습니다. Cosmos DB의 sql 구문은 문서를 쿼리하고 프로젝트하는 계층적, 관계형 및 공간 쿼리 연산자를 제공합니다. Cosmos DB에서 리소스를 쿼리하는 방법에 대한 자세한 내용은 리소스 쿼리를 참조하세요.

요청

메서드 요청 URI 설명
post https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs {databaseaccount}는 구독에서 만든 Cosmos DB 계정의 이름입니다. {db-id} 값은 시스템 생성 ID(rid)가 아니라 사용자가 생성한 데이터베이스의 이름/ID입니다. {coll-id} 값은 컬렉션의 이름입니다.

헤더

모든 Cosmos DB 요청 에서 사용되는 헤더는 일반적인 Azure Cosmos DB REST 요청 헤더를 참조하세요.

헤더 필수 형식 설명
x-ms-documentdb-isquery 필수 부울 POST가 쿼리임을 나타내는 True로 설정해야 합니다.
Content-Type 필수 문자열 application/query+json으로 설정해야 하는 문자열입니다.
x-ms-max-item-count 선택 사항 숫자 페이지당 반환할 최대 항목 수를 나타내는 정수입니다. 쿼리는 페이지당 지정된 수의 항목을 반환하지 않지만 컬렉션 성능 계층 및 크기에 따라 더 적을 수 있습니다. 서비스에서 최적의 항목 수를 결정할 수 있도록 x-ms-max-item-count -1을 지정할 수 있습니다. x-ms-max-item-count에 권장되는 구성 값입니다.
x-ms-continuation 선택 사항 문자열 읽을 결과가 더 있는 경우 쿼리 및 읽기 피드 작업에 대해 반환되는 문자열 토큰입니다. 클라이언트는 x-ms-continuation 요청 헤더가 이 값으로 설정된 요청을 다시 제출하여 결과의 다음 페이지를 검색할 수 있습니다.
x-ms-documentdb-query-enablecrosspartition 선택 사항 부울 컬렉션이 분할된 경우 여러 파티션에서 실행을 허용하려면 True로 설정해야 합니다. 단일 파티션 키 또는 단일 분할된 컬렉션에 대해 필터링하는 쿼리는 헤더를 설정할 필요가 없습니다.
x-ms-consistency-level 선택 사항 문자열 일관성 수준 재정의입니다. 유효한 값은 Strong, Bounded, Session 또는 Eventual입니다(가장 강한 값에서 가장 약한 순서로). 재정의는 계정의 구성된 일관성 수준과 동일하거나 약해야 합니다.
x-ms-session-token 선택 사항 문자열 세션 수준 일관성에 사용되는 문자열 토큰입니다. 클라이언트는 세션 일관성에 대한 읽기 요청 중에 이 헤더의 최신 읽기 값을 에코해야 합니다.

중요

헤더의 Content-Type 경우 charset(예: "application/query+json; charset-utf-8"). 헤더는 위에 표시된 것과 똑딱해야 합니다.

본문

속성 필수 형식 설명
쿼리 필수 문자열 SQL 쿼리 텍스트를 포함합니다. 문법은 SQL 문법을 참조하세요.
parameters 필수 배열 쿼리에 대한 매개 변수 값의 배열입니다.
{  
  "query": "SELECT * FROM Families f WHERE f.id = @id AND f.Address.City = @city",  
  "parameters": [  
    {  
      "name": "@id",  
      "value": "AndersenFamily"  
    },  
    {  
      "name": "@city",  
      "value": "Seattle"  
    }  
  ]  
}  
  

응답

요청된 쿼리와 일치하는 문서 배열을 반환합니다.

헤더

모든 Cosmos DB 응답 에서 반환되는 헤더는 일반적인 Azure Cosmos DB REST 응답 헤더를 참조하세요. 중요한 응답 헤더는 다음과 같습니다.

속성 형식 설명
x-ms-continuation 문자열 작업에서 더 많은 결과를 가져오는 토큰을 반환합니다. 클라이언트는 이 값이 포함된 x-ms-continuation 요청 헤더를 사용하여 요청을 다시 제출하여 실행을 다시 시작할 수 있습니다.
x-ms-request-charge 숫자 작업에서 사용하는 요청 단위 수입니다.

상태 코드

다음 표에는 이 작업에서 반환하는 일반적인 상태 코드가 나열되어 있습니다. 상태 코드의 전체 목록은 HTTP 상태 코드를 참조하세요.

HTTP 상태 코드 설명
200 정상 작업이 완료되었습니다.
400 잘못된 요청 지정된 요청이 잘못된 SQL 구문으로 지정되었거나 필수 헤더가 누락되었습니다.

본문

속성 설명
_제거 문서가 있는 컬렉션의 시스템 생성 리소스 ID입니다.
_횟수 목록 작업에서 반환하는 문서의 수입니다.
문서 작업에서 반환하는 문서의 배열입니다.

문서의 속성

속성 Description
id 이 이름은 문서를 식별하는 고유한 이름입니다. 즉, 두 문서가 동일한 ID를 공유할 수 없습니다. ID 는 255자를 초과하면 안됩니다.
<custom> 모든 사용자 정의 JSON입니다.
_rid 시스템 생성 속성입니다. 리소스 ID(_rid)는 리소스 모델의 리소스 스택당 계층적인 고유 식별자입니다. 문서 리소스의 배치와 탐색을 위해 내부적으로 사용됩니다.
_ts 시스템 생성 속성으로, 리소스가 마지막으로 업데이트된 시간의 타임스탬프를 지정합니다. 값은 타임스탬프입니다.
_self 시스템 생성 속성으로, 고유한 주소를 지정할 수 있는 리소스의 URI입니다.
_etag 낙관적 동시성 제어에 필요한 리소스 etag 를 지정하는 시스템 생성 속성입니다.
_첨부 파일 첨부 파일 리소스의 주소 지정 가능한 경로를 지정하는 시스템 생성 속성입니다.
{  
  "_rid": "1KtjAImkcgw=",  
  "Documents": [  
    {  
      "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/"  
    }  
  ],  
  "_count": 1  
}  
  

예제

POST https://querydemo.documents.azure.com/dbs/1KtjAA==/colls/1KtjAImkcgw=/docs HTTP/1.1  
x-ms-continuation:   
x-ms-documentdb-isquery: True  
x-ms-documentdb-query-enablecrosspartition: True  
x-ms-date: Tue, 29 Mar 2016 02:28:32 GMT  
authorization: type%3dmaster%26ver%3d1.0%26sig%3drOlOhFh9plfC0ggZfmHtS3XepVitiIRsd6i1d9PnuW8%3d  
Cache-Control: no-cache  
User-Agent: Microsoft.Azure.Documents.Client/1.6.0.0  
x-ms-version: 2015-12-16  
Accept: application/json  
Content-Type: application/query+json  
Host: querydemo.documents.azure.com  
Cookie: x-ms-session-token#0=604; x-ms-session-token=604  
Content-Length: 170  
Expect: 100-continue  
  
{  
  "query": "SELECT * FROM Families f WHERE f.id = @id AND f.Address.City = @city",  
  "parameters": [  
    {  
      "name": "@id",  
      "value": "AndersenFamily"  
    },  
    {  
      "name": "@city",  
      "value": "Seattle"  
    }  
  ]  
}  
  
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/"  
}  
  

참고 항목