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ů

Požadavky

V tomto kurzu se předpokládá, že máte účet, databázi a kontejner služby Azure Cosmos DB.

Nemáte žádné z těchto prostředků? Dokončete tento rychlý start: Vytvoření účtu služby Azure Cosmos DB, databáze, kontejneru a položek z webu Azure Portal.

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 Začínáme s dotazy.

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:

Dotaz:

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

Výsledky:

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

Dotaz:

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

Výsledky:

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

Další kroky

V tomto kurzu jste provedli následující úlohy:

  • Naučili jste se dotazovat pomocí předdefinované syntaxe dotazů.

Teď můžete pokračovat k dalšímu kurzu, kde se dozvíte, jak globálně distribuovat data.