Consultar Documentos
Pode consultar documentos json arbitrários numa coleção ao efetuar uma publicação no recurso "colls" no Cosmos DB. A sintaxe sql do Cosmos DB fornece operadores de consulta hierárquica, relacional e espacial para consultar e projetar documentos. Para obter mais informações sobre como consultar recursos no Cosmos DB, veja Consultar recursos.
Pedir
Método | URI do pedido | Description |
---|---|---|
publicar | https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs | tenha em atenção que {databaseaccount} é o nome da conta do Cosmos DB criada na sua subscrição. o valor {db-id} é o nome/ID gerado pelo utilizador da base de dados, não o ID gerado pelo sistema (rid). o valor {coll-id} é o nome da coleção. |
Cabeçalhos
Veja Common Azure Cosmos DB REST request headers for headers that are used by all Cosmos DB requests (Cabeçalhos de pedido REST do Azure Cosmos DB comuns para cabeçalhos que são utilizados por todos os pedidos do Cosmos DB).
Cabeçalho | Necessário | Tipo | Description |
---|---|---|---|
x-ms-documentdb-isquery | Necessário | Booleano | Tem de ser definido como Verdadeiro a indicar que POST é uma consulta. |
Tipo de Conteúdo | Necessário | String | Uma cadeia que tem de ser definida como aplicação/consulta+json. |
x-ms-max-item-count | Opcional | Número | Um número inteiro que indica o número máximo de itens a devolver por página. As consultas não devolverão mais do que o número especificado de itens por página, mas podem ser menos consoante o escalão de desempenho da coleção e os respetivos tamanhos. Pode especificar uma contagem de itens x-ms-max-item-count de -1 para permitir que o serviço determine a contagem de itens ideal. É o valor de configuração recomendado para x-ms-max-item-count. |
x-ms-continuation | Opcional | String | Um token de cadeia devolvido para consultas e operações de feed de leitura se existirem mais resultados a ler. Os clientes podem obter a página seguinte dos resultados ao submeter novamente o pedido com o cabeçalho do pedido x-ms-continuation definido para este valor. |
x-ms-documentdb-query-enablecrosspartition | Opcional | Booleano | Se a coleção estiver particionada, esta tem de ser definida como Verdadeiro para permitir a execução em várias partições. As consultas que filtram numa única chave de partição ou em coleções de partição única não precisam de definir o cabeçalho. |
x-ms-consistency-level | Opcional | String | Esta é a substituição do nível de consistência. Os valores válidos são: Forte, Vinculado, Sessão ou Eventual (por ordem do mais forte para o mais fraco). A substituição tem de ser igual ou mais fraca do que o nível de consistência configurado da conta. |
x-ms-session-token | Opcional | String | Um token de cadeia utilizado com consistência ao nível da sessão. Os clientes têm de ecoar o valor de leitura mais recente deste cabeçalho durante os pedidos de leitura para consistência da sessão. |
Importante
Para o cabeçalho Content-Type
NÃO inclua o conjunto de carateres (ou seja, "application/query+json; charset-utf-8"). O cabeçalho tem de ser exatamente o mostrado acima.
Corpo
Propriedade | Necessário | Tipo | Description |
---|---|---|---|
consulta | Necessário | String | Contém o texto da consulta SQL. Para obter a gramática, veja Gramática do SQL. |
parameters | Necessário | Matriz | Uma matriz de valores de parâmetros para a consulta. |
{
"query": "SELECT * FROM Families f WHERE f.id = @id AND f.Address.City = @city",
"parameters": [
{
"name": "@id",
"value": "AndersenFamily"
},
{
"name": "@city",
"value": "Seattle"
}
]
}
Resposta
Devolve uma matriz de documentos que correspondem à consulta pedida.
Cabeçalhos
Veja Common Azure Cosmos DB REST response headers for headers that are returned by all Cosmos DB responses (Cabeçalhos de resposta REST do Azure Cosmos DB comuns para cabeçalhos devolvidos por todas as respostas do Cosmos DB). Os cabeçalhos de resposta importantes são:
Propriedade | Tipo | Description |
---|---|---|
x-ms-continuation | String | Devolve um token para obter mais resultados da operação. O cliente pode submeter novamente o pedido com o cabeçalho do pedido x-ms-continuation que contém este valor para retomar a execução. |
x-ms-request-charge | Número | O número de unidades de pedido consumidas pela operação. |
Códigos de estado
A tabela seguinte lista os códigos de estado comuns devolvidos por esta operação. Para obter uma lista completa dos códigos de estado, veja Códigos de Estado HTTP.
Código de estado de HTTP | Descrição |
---|---|
200 OK | A operação foi efetuada com êxito. |
400 Pedido Incorreto | O pedido especificado foi especificado com uma sintaxe SQL incorreta ou cabeçalhos necessários em falta. |
Corpo
Propriedade | Descrição |
---|---|
_rid | Este é o ID de recurso gerado pelo sistema para a coleção onde residem os documentos. |
_count | Este é o número de documentos devolvidos pela operação de lista. |
Documentos | A matriz de documentos devolvidos pela operação. |
Propriedades do Documento
Propriedade | Descrição |
---|---|
id | Este é o nome exclusivo que identifica o documento, ou seja, nenhum documento pode partilhar o mesmo ID. O ID não pode exceder os 255 carateres. |
<personalizado> | Qualquer JSON definido pelo utilizador. |
_rid | Esta é uma propriedade gerada pelo sistema. O ID do recurso (_rid) é um identificador exclusivo que também é hierárquico de acordo com a pilha de recursos no modelo de recursos. É utilizado internamente para posicionamento e navegação do recurso de documento. |
_ts | Esta é uma propriedade gerada pelo sistema. Especifica o último carimbo de data/hora atualizado do recurso. O valor é um carimbo de data/hora. |
_self | Esta é uma propriedade gerada pelo sistema. É o URI endereçável exclusivo para o recurso. |
_etag | Esta é uma propriedade gerada pelo sistema que especifica o etag de recursos necessário para o controlo de simultaneidade otimista. |
_attachments | Esta é uma propriedade gerada pelo sistema que especifica o caminho endereçável para o recurso de anexos. |
{
"_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
}
Exemplo
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/"
}