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

Se även