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