Aracılığıyla paylaş


Öğretici: NoSQL için Azure Cosmos DB'de verileri sorgulama

NoSQL için Azure Cosmos DB, yerleşik sorgu söz dizimini kullanarak belgeleri sorgulamayı destekler. Bu makalede örnek bir belge ve iki örnek sorgu ve sonuç sağlanır.

Bu makale aşağıdaki görevleri kapsar:

  • Yerleşik sorgu söz dizimi ile NoSQL verilerini sorgulama

Önkoşullar

Sorguları Azure portalındaki Azure Cosmos DB Gezgini'ni kullanarak çalıştırabilirsiniz. Rest API'yi veya çeşitli SDK'ları kullanarak da sorgu çalıştırabilirsiniz.

Sorgular hakkında daha fazla bilgi için bkz. NoSQL için Azure Cosmos DB'de sorgular.

Örnek belge

Bu makaledeki sorgular aşağıdaki örnek belgeyi kullanır.

{
  "id": "WakefieldFamily",
  "parents": [
    { "familyName": "Wakefield", "givenName": "Robin" },
    { "familyName": "Miller", "givenName": "Ben" }
  ],
  "children": [
    {
      "familyName": "Merriam", 
      "givenName": "Jesse", 
      "gender": "female", "grade": 1,
      "pets": [
          { "givenName": "Goofy" },
          { "givenName": "Shadow" }
      ]
    },
    { 
      "familyName": "Miller", 
        "givenName": "Lisa", 
        "gender": "female", 
        "grade": 8 
    }
  ],
  "address": { "state": "NY", "county": "Manhattan", "city": "NY" },
  "creationDate": 1431620462,
  "isRegistered": false
}

Tüm alanları seçme ve filtre uygulama

Örnek aile belgesi göz önünde bulundurulduğunda, aşağıdaki sorgu kimlik alanının WakefieldFamily ile eşleştiği belgeleri döndürür. Bu bir SELECT * deyimi olduğundan, sorgunun çıkışı eksiksiz JSON belgesidir:

Query:

SELECT * 
FROM Families f 
WHERE f.id = "WakefieldFamily"

Sonuçlar:

{
  "id": "WakefieldFamily",
  "parents": [
    { "familyName": "Wakefield", "givenName": "Robin" },
    { "familyName": "Miller", "givenName": "Ben" }
  ],
  "children": [
    {
      "familyName": "Merriam", 
      "givenName": "Jesse", 
      "gender": "female", "grade": 1,
      "pets": [
          { "givenName": "Goofy" },
          { "givenName": "Shadow" }
      ]
    },
    { 
      "familyName": "Miller", 
        "givenName": "Lisa", 
        "gender": "female", 
        "grade": 8 
    }
  ],
  "address": { "state": "NY", "county": "Manhattan", "city": "NY" },
  "creationDate": 1431620462,
  "isRegistered": false
}

Bir alt koleksiyon alanının çapraz çarpımını seçin

Sonraki sorgu, ailedeki kimliği ile eşleşen WakefieldFamilytüm çocukların adlarını döndürür.

Query:

SELECT c.givenName 
FROM Families f 
JOIN c IN f.children 
WHERE f.id = 'WakefieldFamily'

Sonuçlar:

[
  {
    "givenName": "Jesse"
  },
  {
    "givenName": "Lisa"
  }
]

Sonraki adım