Freigeben über


Abfragen von Dokumenten

Sie können beliebige JSON-Dokumente in einer Sammlung abfragen, indem Sie einen Beitrag für die Ressource "colls" in Cosmos DB ausführen. Die SQL-Syntax von Cosmos DB bietet hierarchische, relationale und räumliche Abfrageoperatoren zum Abfragen und Projektieren von Dokumenten. Weitere Informationen zum Abfragen von Ressourcen in Cosmos DB finden Sie unter Abfragen von Ressourcen.

Anforderung

Methode Anforderungs-URI BESCHREIBUNG
post https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs Beachten Sie, dass {databaseaccount} der Name des Cosmos DB-Kontos ist, das unter Ihrem Abonnement erstellt wurde. Der Wert {db-id} ist der vom Benutzer generierte Name/id der Datenbank, nicht die vom System generierte ID (los). der Wert {coll-id} ist der Name der Auflistung.

Header

Informationen zu Headern, die von allen Cosmos DB-Anforderungen verwendet werden, finden Sie unter Allgemeine Azure Cosmos DB-REST-Anforderungsheader .

Header Erforderlich type BESCHREIBUNG
x-ms-documentdb-isquery Erforderlich Boolean Muss auf True festgelegt werden, was angibt, dass es sich bei der POST um eine Abfrage handelt.
Content-Type Erforderlich String Eine Zeichenfolge, die auf application/query+json festgelegt werden muss.
x-ms-max-item-count Optional Number Eine ganze Zahl, die die maximale Anzahl von Elementen angibt, die pro Seite zurückgegeben werden sollen. Abfragen geben nicht mehr als die angegebene Anzahl von Elementen pro Seite zurück, können aber je nach Sammlungsleistungsebene und deren Größen weniger sein. Es kann eine x-ms-max-item-count von -1 angegeben werden, damit der Dienst die optimale Elementanzahl bestimmen kann. Dies ist der empfohlene Konfigurationswert für x-ms-max-item-count.
x-ms-continuation Optional String Ein Zeichenfolgentoken, das für Abfragen und Lesefeedvorgänge zurückgegeben wird, wenn weitere Ergebnisse gelesen werden müssen. Clients können die nächste Seite der Ergebnisse abrufen, indem sie die Anforderung erneut mit dem Header x-ms-continuation request übermitteln, der auf diesen Wert festgelegt ist.
x-ms-documentdb-query-enablecrosspartition Optional Boolean Wenn die Auflistung partitioniert ist, muss dies auf True festgelegt werden, um die Ausführung über mehrere Partitionen hinweg zu ermöglichen. Abfragen, die nach einem einzelnen Partitionsschlüssel oder nach einzelpartitionierten Sammlungen filtern, müssen den Header nicht festlegen.
x-ms-consistency-level Optional String Dies ist die Überschreibung der Konsistenzebene. Die gültigen Werte sind: Strong, Bounded, Session oder Eventual (in der Reihenfolge von stärkstem bis schwächstem Wert). Die Überschreibung muss identisch oder schwächer als die konfigurierte Konsistenzebene des Kontos sein.
x-ms-session-token Optional String Ein Zeichenfolgentoken, das mit Konsistenz auf Sitzungsebene verwendet wird. Clients müssen den aktuellen Lesewert dieses Headers bei Leseanforderungen für Sitzungskonsistenz wiedergibt.

Wichtig

Für den Content-Type Header nicht das Zeichenset enthalten (d. h. "application/query+json; charset-utf-8"). Der Header muss genau wie oben dargestellt sein.

Body

Eigenschaft Erforderlich type BESCHREIBUNG
Frage Erforderlich String Enthält den SQL-Abfragetext. Informationen zur Grammatik finden Sie unter SQL-Grammatik.
parameters Erforderlich Array Ein Array von Parameterwerten für die Abfrage.
{  
  "query": "SELECT * FROM Families f WHERE f.id = @id AND f.Address.City = @city",  
  "parameters": [  
    {  
      "name": "@id",  
      "value": "AndersenFamily"  
    },  
    {  
      "name": "@city",  
      "value": "Seattle"  
    }  
  ]  
}  
  

Antwort

Gibt ein Array von Dokumenten zurück, die der angeforderten Abfrage entsprechen.

Header

Informationen zu Headern, die von allen Cosmos DB-Antworten zurückgegeben werden, finden Sie unter Allgemeine Azure Cosmos DB-REST-Antwortheader . Die wichtigen Antwortheader sind:

Eigenschaft type BESCHREIBUNG
x-ms-continuation String Gibt ein Token zurück, um weitere Ergebnisse aus dem Vorgang abzurufen. Der Client kann die Anforderung erneut mit dem Header x-ms-continuation request übermitteln, der diesen Wert enthält, um die Ausführung fortzusetzen.
x-ms-request-charge Number Die Anzahl der vom Vorgang verbrauchten Anforderungseinheiten.

Statuscodes

In der folgenden Tabelle sind die allgemeinen Statuscodes aufgeführt, die von diesem Vorgang zurückgegeben werden. Eine vollständige Liste der status Codes finden Sie unter HTTP-Statuscodes.

HTTP-Statuscode BESCHREIBUNG
200 – OK Der Vorgang wurde durchgeführt.
400 – Ungültige Anforderung Die angegebene Anforderung wurde mit einer falschen SQL-Syntax oder fehlenden erforderlichen Headern angegeben.

Body

Eigenschaft BESCHREIBUNG
_los Dies ist die vom System generierte Ressourcen-ID für die Auflistung, in der sich die Dokumente befinden.
_Count Dies ist die Anzahl der Dokumente, die vom Auflistungsvorgang zurückgegeben werden.
Dokumente Das Array von Dokumenten, das vom Vorgang zurückgegeben wird.

Eigenschaften des Dokuments

Eigenschaft BESCHREIBUNG
id Dies ist der eindeutige Name, der das Dokument identifiziert, d. h. keine zwei Dokumente können dieselbe ID verwenden. Die ID darf nicht länger als 255 Zeichen sein.
<custom> Beliebiger benutzerdefinierter JSON-Code.
_los Dies ist eine vom System generierte Eigenschaft. Die Ressourcen-ID (_rid) ist ein eindeutiger Bezeichner, der auch je nach Ressourcenstapel im Ressourcenmodell hierarchisch ist. Sie wird intern für die Platzierung und Navigation der Dokumentressource verwendet.
_Ts Dies ist eine vom System generierte Eigenschaft. Sie gibt den zuletzt aktualisierten Zeitstempel der Ressource an. Der Wert ist ein Zeitstempel.
_Selbst Dies ist eine vom System generierte Eigenschaft. Es handelt sich um den eindeutigen, adressierbaren URI für die Ressource.
_Etag Dies ist eine vom System generierte Eigenschaft, die das Ressourcen-Etag angibt, das für die Steuerung der optimistischen Parallelität erforderlich ist.
_Anlagen Dies ist eine vom System generierte Eigenschaft, die den adressierbaren Pfad der Anlagenressource angibt.
{  
  "_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  
}  
  

Beispiel

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

Weitere Informationen