Aracılığıyla paylaş


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

Ayrıca Bkz.