Sdílet prostřednictvím


Kurz: Dotazování dat ve službě Azure Cosmos DB for NoSQL

PLATÍ PRO: NoSQL

Azure Cosmos DB for NoSQL podporuje dotazování dokumentů pomocí integrované syntaxe dotazů. Tento článek obsahuje ukázkový dokument a dva ukázkové dotazy a výsledky.

Tento článek se zabývá následujícími úkony:

  • Dotazování dat NoSQL pomocí integrované syntaxe dotazů

Prerequisites

Dotazy můžete spouštět pomocí Průzkumníka služby Azure Cosmos DB na webu Azure Portal. Dotazy můžete spouštět také pomocí rozhraní REST API nebo různých sad SDK.

Další informace o dotazech najdete v tématu Dotazy ve službě Azure Cosmos DB for NoSQL.

Ukázkový dokument

Dotazy v tomto článku využívají následující ukázkový dokument.

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

Výběr všech polí a použití filtru

Vzhledem k ukázkovém rodinnému dokumentu vrátí následující dotaz dokumenty, ve kterých se pole ID shoduje WakefieldFamily. Vzhledem k tomu, že se jedná o příkaz SELECT *, výstupem dotazu bude celý dokument JSON:

Query:

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

Results:

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

Výběr křížového produktu podřízeného pole kolekce

Následující dotaz vrátí všechna jména dětí v rodině, jejichž ID odpovídá WakefieldFamily.

Query:

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

Results:

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

Další krok