Sdílet prostřednictvím


Dotazování na dokumenty

Můžete dotazovat libovolné dokumenty JSON v kolekci provedením příspěvku proti prostředku "colls" ve službě Cosmos DB. Syntaxe SQL služby Cosmos DB poskytuje hierarchické, relační a prostorové operátory dotazů pro dotazování a projektové dokumenty. Další informace o dotazování prostředků ve službě Cosmos DB najdete v tématu Dotazování prostředků.

Žádost

Metoda Identifikátor URI žádosti Description
Příspěvek https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{id_databáze}/docs Všimněte si, že {databaseaccount} je název účtu Cosmos DB vytvořeného v rámci vašeho předplatného. hodnota {db-id} je uživatelem vygenerované jméno/ID databáze, nikoli id (RID) generované systémem. hodnota {coll-id} je název kolekce.

Hlavičky

Projděte si běžné hlavičky požadavků REST služby Azure Cosmos DB pro hlavičky, které se používají ve všech požadavcích služby Cosmos DB.

Hlavička Požaduje se Typ Description
x-ms-documentdb-isquery Vyžadováno Logická hodnota Musí být nastavená na Hodnotu True, což znamená, že POST je dotaz.
Typ obsahu Vyžadováno Řetězec Řetězec, který musí být nastavený na application/query+json.
x-ms-max-item-count Volitelné Číslo Celé číslo označující maximální počet položek, které mají být vráceny na stránku. Dotazy nevrátí více než zadaný počet položek na stránku, ale v závislosti na úrovni výkonu kolekce a jejich velikostech jich může být méně. Je možné zadat x-ms-max-item-count -1, aby optimální počet položek určila služba. Jedná se o doporučenou hodnotu konfigurace pro x-ms-max-item-count.
x-ms-continuation Volitelné Řetězec Řetězcový token vrácený pro dotazy a operace čtení, pokud je potřeba přečíst více výsledků. Klienti můžou načíst další stránku výsledků opětovným odesláním požadavku s hlavičkou x-ms-continuation nastavenou na tuto hodnotu.
x-ms-documentdb-query-enablecrosspartition Volitelné Logická hodnota Pokud je kolekce rozdělená na oddíly, musí být nastavená na Hodnotu True, aby bylo možné provádět napříč více oddíly. Dotazy, které filtrují podle jednoho klíče oddílu nebo podle kolekcí s jedním oddílem, nemusí hlavičku nastavovat.
x-ms-consistency-level Volitelné Řetězec Toto je přepsání úrovně konzistence. Platné hodnoty jsou: Silná, Ohraničená, Relace nebo Případná (v pořadí od nejsilnějšího po nejslabší). Přepsání musí být stejné nebo slabší než nakonfigurovaná úroveň konzistence účtu.
x-ms-session-token Volitelné Řetězec Token řetězce používaný s konzistencí na úrovni relace. Klienti musí během požadavků na čtení odpovídat nejnovější hodnotě čtení této hlavičky kvůli konzistenci relace.

Důležité

V hlavičce Content-Type NEPOUŽÍVEJTE znakovou sadu (tj. "application/query+json; charset-utf-8"). Záhlaví musí být přesně tak, jak je znázorněno výše.

Text

Vlastnost Požaduje se Typ Description
Dotazu Vyžadováno Řetězec Obsahuje text dotazu SQL. Informace o gramatice najdete v tématu Gramatika SQL.
parameters Vyžadováno Pole Pole hodnot parametrů pro dotaz.
{  
  "query": "SELECT * FROM Families f WHERE f.id = @id AND f.Address.City = @city",  
  "parameters": [  
    {  
      "name": "@id",  
      "value": "AndersenFamily"  
    },  
    {  
      "name": "@city",  
      "value": "Seattle"  
    }  
  ]  
}  
  

Odpověď

Vrátí pole dokumentů, které odpovídají požadovanému dotazu.

Hlavičky

Projděte si běžné hlavičky odpovědi REST služby Azure Cosmos DB pro hlavičky, které vrací všechny odpovědi služby Cosmos DB. Důležité hlavičky odpovědi:

Vlastnost Typ Description
x-ms-continuation Řetězec Vrátí token pro načtení dalších výsledků z operace. Klient může požadavek znovu odeslat s hlavičkou x-ms-continuation, která obsahuje tuto hodnotu, aby se obnovilo provádění.
x-ms-request-charge Číslo Počet jednotek žádostí spotřebovaných operací.

Stavové kódy

Následující tabulka obsahuje seznam běžných stavových kódů vrácených touto operací. Úplný seznam stavových kódů najdete v tématu Stavové kódy HTTP.

Stavový kód HTTP Popis
200 OK Operace byla úspěšná.
400 – Chybný požadavek Zadaný požadavek byl zadán s nesprávnou syntaxí SQL nebo chybí požadované hlavičky.

Text

Vlastnost Popis
_Zbavit Toto je systémem generované ID prostředku pro kolekci, ve které se nacházejí dokumenty.
_Počet Jedná se o počet dokumentů vrácených operací seznamu.
Dokumenty Pole dokumentů vrácených operací.

Vlastnosti dokumentu

Vlastnost Popis
id Jedná se o jedinečný název, který identifikuje dokument, tj. žádné dva dokumenty nemůžou sdílet stejné ID. Id nesmí být delší než 255 znaků.
<custom> Libovolný uživatelem definovaný JSON.
_Zbavit Toto je systémem generovaná vlastnost. ID prostředku (_rid) je jedinečný identifikátor, který je také hierarchický podle zásobníku prostředků v modelu prostředků. Používá se interně pro umístění a navigaci v tomto prostředku dokumentu.
_Ts Toto je systémem generovaná vlastnost. Určuje časové razítko poslední aktualizace prostředku. Hodnota je časové razítko.
_Vlastní Toto je systémem generovaná vlastnost. Jedná se o jedinečný adresovatelný identifikátor URI prostředku.
_Etag Toto je systémem generovaná vlastnost, která určuje etag prostředku vyžadovanou pro řízení optimistické souběžnosti.
_Přílohy Toto je systémem generovaná vlastnost, která určuje adresovatelnou cestu pro prostředek příloh.
{  
  "_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  
}  
  

Příklad

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

Viz také