Fråga dokument
Du kan köra frågor mot godtyckliga json-dokument i en samling genom att utföra ett inlägg mot resursen "colls" i Cosmos DB. Sql-syntaxen för Cosmos DB tillhandahåller hierarkiska, relationella och rumsliga frågeoperatorer för fråge- och projektdokument. Mer information om hur du frågar efter resurser i Cosmos DB finns i fråga efter resurser.
Förfrågan
Metod | URI för förfrågan | Description |
---|---|---|
Inlägg | https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs | Observera att {databaseaccount} är namnet på det Cosmos DB-konto som skapades under din prenumeration. värdet {db-id} är det användargenererade namnet/ID:t för databasen, inte det systemgenererade ID:t (rid). värdet {coll-id} är namnet på samlingen. |
Sidhuvuden
Se Vanliga REST-begärandehuvuden för Azure Cosmos DB för rubriker som används av alla Cosmos DB-begäranden.
Huvud | Krävs | Typ | Description |
---|---|---|---|
x-ms-documentdb-isquery | Obligatorisk | Boolesk | Måste anges till True som anger att POST är en fråga. |
Innehållstyp | Obligatorisk | Sträng | En sträng som måste anges till application/query+json. |
x-ms-max-item-count | Valfritt | Tal | Ett heltal som anger det maximala antalet objekt som ska returneras per sida. Frågor returnerar inte mer än det angivna antalet objekt per sida, men kan vara färre beroende på samlingens prestandanivå och deras storlekar. Du kan ange x-ms-max-item-count på -1 så att tjänsten kan fastställa det optimala antalet objekt. Det är det rekommenderade konfigurationsvärdet för x-ms-max-item-count. |
x-ms-continuation | Valfritt | Sträng | En strängtoken som returneras för frågor och läs-feed-åtgärder om det finns fler resultat att läsa. Klienter kan hämta nästa sida med resultat genom att skicka begäran igen med rubriken för begäran x-ms-continuation inställt på det här värdet. |
x-ms-documentdb-query-enablecrosspartition | Valfritt | Boolesk | Om samlingen är partitionerad måste detta anges till Sant för att tillåta körning över flera partitioner. Frågor som filtrerar mot en enda partitionsnyckel eller mot en partitionerade samlingar behöver inte ange huvudet. |
x-ms-consistency-level | Valfritt | Sträng | Det här är åsidosättningen på konsekvensnivå. Giltiga värden är: Stark, Begränsad, Session eller Slutlig (i den ordning som är starkast till svagast). Åsidosättningen måste vara samma eller svagare än kontots konfigurerade konsekvensnivå. |
x-ms-session-token | Valfritt | Sträng | En strängtoken som används med konsekvens på sessionsnivå. Klienter måste upprepa det senaste läsvärdet för den här rubriken under läsbegäranden om sessionskonsekvens. |
Viktigt
Content-Type
För rubriken inkluderar inte teckenuppsättningen (t.ex. "application/query+json; charset-utf-8"). Huvudet måste vara exakt som det visas ovan.
Brödtext
Egenskap | Krävs | Typ | Description |
---|---|---|---|
Fråga | Obligatorisk | Sträng | Innehåller SQL-frågetexten. Grammatik finns i SQL-grammatik. |
parameters | Obligatorisk | Matris | En matris med parametervärden för frågan. |
{
"query": "SELECT * FROM Families f WHERE f.id = @id AND f.Address.City = @city",
"parameters": [
{
"name": "@id",
"value": "AndersenFamily"
},
{
"name": "@city",
"value": "Seattle"
}
]
}
Svarsåtgärder
Returnerar en matris med dokument som matchar den begärda frågan.
Sidhuvuden
Se Vanliga REST-svarshuvuden för Azure Cosmos DB för rubriker som returneras av alla Cosmos DB-svar. De viktiga svarshuvudena är:
Egenskap | Typ | Description |
---|---|---|
x-ms-continuation | Sträng | Returnerar en token för att hämta fler resultat från åtgärden. Klienten kan skicka begäran igen med begärandehuvudet x-ms-continuation som innehåller det här värdet för att återuppta körningen. |
x-ms-request-charge | Tal | Antalet enheter för programbegäran som förbrukas av åtgärden. |
Statuskoder
I följande tabell visas vanliga statuskoder som returneras av den här åtgärden. En fullständig lista över statuskoder finns i HTTP-statuskoder.
HTTP-statuskod | Beskrivning |
---|---|
200 OK | Åtgärden lyckades. |
400 Felaktig begäran | Den angivna begäran angavs med en felaktig SQL-syntax eller saknade nödvändiga huvuden. |
Brödtext
Egenskap | Beskrivning |
---|---|
_Bli | Det här är det systemgenererade resurs-ID:t för samlingen där dokumenten finns. |
_Räkna | Det här är antalet dokument som returneras av liståtgärden. |
Dokument | Matrisen med dokument som returneras av åtgärden. |
Egenskaper för dokument
Egenskap | Beskrivning |
---|---|
id | Det här är det unika namnet som identifierar dokumentet, dvs. inga två dokument kan dela samma ID. ID:t får inte överstiga 255 tecken. |
<anpassad> | Användardefinierad JSON. |
_Bli | Det här är en systemgenererad egenskap. Resurs-ID :t (_rid) är en unik identifierare som också är hierarkisk per resursstacken i resursmodellen. Den används internt för placering och navigering i dokumentresursen. |
_Ts | Det här är en systemgenererad egenskap. Den anger resursens senast uppdaterade tidsstämpel. Värdet är en tidsstämpel. |
_Själv | Det här är en systemgenererad egenskap. Det är den unika adresserbara URI:n för resursen. |
_Etag | Det här är en systemgenererad egenskap som anger resursetaggen som krävs för optimistisk samtidighetskontroll. |
_Bilagor | Det här är en systemgenererad egenskap som anger den adresserbara sökvägen för resursen för bifogade filer. |
{
"_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
}
Exempel
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/"
}