Megosztás:


Dokumentumok lekérdezése

A gyűjtemény tetszőleges JSON-dokumentumait úgy kérdezheti le, ha egy bejegyzést végez a Cosmos DB "colls" erőforrásán. A Cosmos DB SQL-szintaxisa hierarchikus, relációs és térbeli lekérdezési operátorokat biztosít a dokumentumok lekérdezéséhez és kivetítéséhez. Az erőforrások Cosmos DB-ben való lekérdezésével kapcsolatos további információkért lásd: Erőforrások lekérdezése.

Kérés

Metódus Kérés URI-ja Description
Post https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs vegye figyelembe, hogy a(z) {databaseaccount} az előfizetése alatt létrehozott Cosmos DB-fiók neve. A {db-id} érték az adatbázis felhasználó által létrehozott neve/azonosítója, nem pedig a rendszer által generált azonosító (rid). A(z) {coll-id} érték a gyűjtemény neve.

Fejlécek

Az összes Cosmos DB-kérés által használt fejlécekhez tekintse meg az Azure Cosmos DB REST-kérések gyakori fejléceit .

Fejléc Kötelező Típus Description
x-ms-documentdb-isquery Kötelező Logikai Igaz értékre kell állítani, amely azt jelzi, hogy a POST lekérdezés.
Tartalomtípus Kötelező Sztring Egy sztring, amelyet application/query+json értékre kell állítani.
x-ms-max-item-count Választható Szám Egész szám, amely az egy oldalon visszaadandó elemek maximális számát jelzi. A lekérdezések oldalanként legfeljebb a megadott számú elemet adják vissza, de a gyűjtemény teljesítményszintje és méretük alapján kevesebb is lehet. A -1 x-ms-max-item-count értéke megadhatja, hogy a szolgáltatás határozza meg az optimális elemszámot. Ez az x-ms-max-item-count ajánlott konfigurációs értéke.
x-ms-continuation Választható Sztring A lekérdezésekhez és az olvasási hírcsatorna-műveletekhez visszaadott sztringtoken, ha több eredményt kell olvasni. Az ügyfelek úgy kérhetik le az eredmények következő oldalát, hogy újra beküldik a kérést az x-ms-continuation kérelem fejlécének erre az értékre van állítva.
x-ms-documentdb-query-enablecrosspartition Választható Logikai Ha a gyűjtemény particionálva van, ezt True (Igaz) értékre kell állítani, hogy több partíción is lehetővé tegye a végrehajtást. Az egyetlen partíciókulcsra vagy egypartíciós gyűjteményekre szűrő lekérdezéseknek nem kell beállítaniuk a fejlécet.
x-ms-consistency-level Választható Sztring Ez a konzisztenciaszint felülbírálása. Az érvényes értékek a következők: Erős, Kötött, Munkamenet vagy Végleges (a legerősebbtől a leggyengébbig). A felülbírálásnak meg kell egyeznie vagy gyengébbnek kell lennie, mint a fiók konfigurált konzisztenciaszintje.
x-ms-session-token Választható Sztring Munkamenetszintű konzisztenciával használt sztringtoken. Az ügyfeleknek a munkamenet-konzisztencia olvasási kérelmei során meg kell jelenniük a fejléc legfrissebb olvasási értékének.

Fontos

Content-Type A fejlécben NE szerepeljen a karakterkészlet (például "application/query+json; charset-utf-8"). A fejlécnek pontosan a fent látható módon kell lennie.

Törzs

Tulajdonság Kötelező Típus Description
Lekérdezés Kötelező Sztring Az SQL-lekérdezés szövegét tartalmazza. A nyelvhelyességről az SQL Grammar című témakörben olvashat.
paraméterek Kötelező Tömb A lekérdezés paraméterértékeinek tömbje.
{  
  "query": "SELECT * FROM Families f WHERE f.id = @id AND f.Address.City = @city",  
  "parameters": [  
    {  
      "name": "@id",  
      "value": "AndersenFamily"  
    },  
    {  
      "name": "@city",  
      "value": "Seattle"  
    }  
  ]  
}  
  

Reagálás

A kért lekérdezésnek megfelelő dokumentumtömböt ad vissza.

Fejlécek

Az összes Cosmos DB-válasz által visszaadott fejléceket az Azure Cosmos DB REST-válaszfejlécei között tekintheti meg. A fontos válaszfejlécek a következők:

Tulajdonság Típus Description
x-ms-continuation Sztring Egy jogkivonatot ad vissza, amely további eredményeket szeretne lekérni a műveletből. Az ügyfél újra elküldheti a kérést az x-ms-continuation kérelem fejlécével, amely tartalmazza ezt az értéket a végrehajtás folytatásához.
x-ms-request-charge Szám A művelet által felhasznált kérelemegységek száma.

Állapotkódok

Az alábbi táblázat a művelet által visszaadott gyakori állapotkódokat sorolja fel. Az állapotkódok teljes listáját lásd: HTTP-állapotkódok.

HTTP-állapotkód Leírás
200 OK A művelet sikeres volt.
400 – Hibás kérés A megadott kérés helytelen SQL-szintaxissal lett megadva, vagy hiányoznak a szükséges fejlécek.

Törzs

Tulajdonság Leírás
_Megszabadulni Ez a rendszer által létrehozott erőforrás-azonosító ahhoz a gyűjteményhez, amelyben a dokumentumok találhatók.
_Számít Ez a listaművelet által visszaadott dokumentumok száma.
Dokumentumok A művelet által visszaadott dokumentumok tömbje.

A dokumentum tulajdonságai

Tulajdonság Leírás
id Ez az a név, amely azonosítja a dokumentumot, vagyis egyetlen két dokumentum sem oszthatja meg ugyanazt az azonosítót. Az azonosító nem haladhatja meg a 255 karaktert.
<egyéni> Bármely felhasználó által definiált JSON.
_Megszabadulni Ez egy rendszer által létrehozott tulajdonság. Az erőforrás-azonosító (_rid) egy egyedi azonosító, amely szintén hierarchikus az erőforrásmodell erőforrás-vermében. A rendszer a dokumentum típusú erőforrás elhelyezésére és navigálására használja.
_Ts Ez egy rendszer által létrehozott tulajdonság. Meghatározza az erőforrás utolsó frissített időbélyegét. Az érték egy időbélyeg.
_Önálló Ez egy rendszer által létrehozott tulajdonság. Ez az erőforrás egyedi címezhető URI-ja.
_Etag Ez egy rendszer által létrehozott tulajdonság, amely meghatározza az optimista egyidejűség-vezérléshez szükséges erőforrás-etaget .
_Mellékletek Ez egy rendszer által létrehozott tulajdonság, amely megadja a mellékletek erőforrásának címezhető elérési útját.
{  
  "_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élda

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

Lásd még: