Belgeleri Sorgulama
Cosmos DB'deki "harmanlamalar" kaynağına karşı bir gönderi gerçekleştirerek bir koleksiyondaki rastgele json belgelerini sorgulayabilirsiniz. Cosmos DB'nin sql söz dizimi, belgeleri sorgulamak ve yansıtmak için hiyerarşik, ilişkisel ve uzamsal sorgu işleçleri sağlar. Cosmos DB'deki kaynakları sorgulama hakkında daha fazla bilgi için bkz. Kaynakları sorgulama.
İstek
Yöntem | İstek URI'si | Description |
---|---|---|
Yayınla | https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/docs | {databaseaccount}, aboneliğiniz altında oluşturulan Cosmos DB hesabının adıdır. {db-id} değeri, sistem tarafından oluşturulan kimlik (rid) değil, veritabanının kullanıcı tarafından oluşturulan adı/kimliğidir. {coll-id} değeri koleksiyonun adıdır. |
Üst Bilgiler
Tüm Cosmos DB istekleri tarafından kullanılan üst bilgiler için bkz. Yaygın Azure Cosmos DB REST istek üst bilgileri.
Üst bilgi | Gerekli | Tür | Description |
---|---|---|---|
x-ms-documentdb-isquery | Gerekli | Boole | POST'un bir sorgu olduğunu belirten True olarak ayarlanmalıdır. |
İçerik Türü | Gerekli | Dize | application/query+json olarak ayarlanması gereken bir dize. |
x-ms-max-item-count | İsteğe Bağlı | Sayı | Sayfa başına döndürülecek en fazla öğe sayısını gösteren tamsayı. Sorgular sayfa başına belirtilen sayıda öğeden fazlasını döndürmez, ancak koleksiyon performans katmanına ve boyutlarına bağlı olarak daha az olabilir. Hizmetin en uygun öğe sayısını belirlemesine izin vermek için -1 x-ms-max-item-count belirtilebilir. Bu, x-ms-max-item-count için önerilen yapılandırma değeridir. |
x-ms-continuation | İsteğe Bağlı | Dize | Okunacak daha fazla sonuç varsa sorgular ve okuma akışı işlemleri için döndürülen bir dize belirteci. İstemciler, isteği x-ms-continuation istek üst bilgisi bu değere ayarlanmış şekilde yeniden ileterek sonuçların sonraki sayfasını alabilir. |
x-ms-documentdb-query-enablecrosspartition | İsteğe Bağlı | Boole | Koleksiyon bölümlenmişse, birden çok bölümde yürütmeye izin vermek için bunun True olarak ayarlanması gerekir. Tek bir bölüm anahtarına veya tek bölümlü koleksiyonlara göre filtreleyen sorguların üst bilgiyi ayarlaması gerekmez. |
x-ms-consistency-level | İsteğe Bağlı | Dize | Bu, tutarlılık düzeyi geçersiz kılma işlemidir. Geçerli değerler şunlardır: Strong, Bounded, Session veya Eventual (en güçlüden en zayıfa doğru). Geçersiz kılma, hesabın yapılandırılmış tutarlılık düzeyinden aynı veya daha zayıf olmalıdır. |
x-ms-session-token | İsteğe Bağlı | Dize | Oturum düzeyi tutarlılığı ile kullanılan bir dize belirteci. İstemcilerin oturum tutarlılığı için okuma istekleri sırasında bu üst bilginin en son okuma değerini yansıtması gerekir. |
Önemli
Üst bilgi için Content-Type
karakter kümesi (örn. "application/query+json; charset-utf-8"). Üst bilgi tam olarak yukarıda gösterildiği gibi olmalıdır.
Gövde
Özellik | Gerekli | Tür | Description |
---|---|---|---|
Sorgu | Gerekli | Dize | SQL sorgu metnini içerir. Dil bilgisi için bkz . SQL Dil Bilgisi. |
parametreler | Gerekli | Dizi | Sorgu için parametre değerleri dizisi. |
{
"query": "SELECT * FROM Families f WHERE f.id = @id AND f.Address.City = @city",
"parameters": [
{
"name": "@id",
"value": "AndersenFamily"
},
{
"name": "@city",
"value": "Seattle"
}
]
}
Yanıt
İstenen sorguyla eşleşen bir belge dizisi döndürür.
Üst Bilgiler
Tüm Cosmos DB yanıtları tarafından döndürülen üst bilgiler için bkz. Yaygın Azure Cosmos DB REST yanıt üst bilgileri. Önemli yanıt üst bilgileri şunlardır:
Özellik | Tür | Description |
---|---|---|
x-ms-continuation | Dize | İşlemden daha fazla sonuç getirmek için bir belirteç döndürür. İstemci, yürütmeyi sürdürmek için bu değeri içeren x-ms-continuation istek üst bilgisi ile isteği yeniden gönderebilir. |
x-ms-request-charge | Sayı | İşlem tarafından kullanılan istek birimi sayısı. |
Durum kodları
Aşağıdaki tabloda bu işlem tarafından döndürülen genel durum kodları listelenmektedir. Durum kodlarının tam listesi için bkz. HTTP Durum Kodları.
HTTP durum kodu | Açıklama |
---|---|
200 Tamam | İşlem başarılı oldu. |
400 Hatalı İstek | Belirtilen istek yanlış bir SQL söz dizimi veya gerekli üst bilgiler eksik olarak belirtildi. |
Gövde
Özellik | Açıklama |
---|---|
_Kurtulmak | Bu, belgelerin bulunduğu koleksiyon için sistem tarafından oluşturulan kaynak kimliğidir. |
_Sayısı | Bu, liste işlemi tarafından döndürülen belge sayısıdır. |
Belgeler | İşlem tarafından döndürülen belge dizisi. |
Belgenin Özellikleri
Özellik | Açıklama |
---|---|
id | Bu, belgeyi tanımlayan benzersiz addır; başka bir deyişle iki belge aynı kimliği paylaşamıyor. Kimlik 255 karakteri aşmamalıdır. |
<custom> | Kullanıcı tanımlı herhangi bir JSON. |
_Kurtulmak | Bu, sistem tarafından oluşturulan bir özelliktir. Kaynak kimliği (_rid), kaynak modelinde kaynak yığını başına da hiyerarşik olan benzersiz bir tanımlayıcıdır. Belge kaynağının yerleştirilmesi ve gezinti için uygulama tarafından kullanılır. |
_Ts | Bu, sistem tarafından oluşturulan bir özelliktir. Kaynağın son güncelleştirilmiş zaman damgasını belirtir. Değer bir zaman damgasıdır. |
_Kendini | Bu, sistem tarafından oluşturulan bir özelliktir. Kaynak için benzersiz adreslenebilir URI'dir. |
_Etag | Bu, iyimser eşzamanlılık denetimi için gereken kaynak etag'ini belirten sistem tarafından oluşturulan bir özelliktir. |
_Ekleri | Bu, ekler kaynağı için adreslenebilir yolu belirten sistem tarafından oluşturulan bir özelliktir. |
{
"_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
}
Örnek
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/"
}