Azure Cosmos DB: procedura per l'esecuzione di query con SQL

L'API DocumentDB di Azure Cosmos DB supporta l'esecuzione di query sui documenti usando SQL. Questo articolo include un documento di esempio e due esempi di query SQL e relativi risultati.

Questo articolo illustra le attività seguenti:

  • Esecuzione di query sui dati con SQL

Documento di esempio

Le query SQL di questo articolo usano il documento di esempio seguente.

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

Dove è possibile eseguire query SQL?

È possibile eseguire query usando Esplora dati nel Portale di Azure, tramite le API REST e gli SDK e anche usando Query Playground, che esegue query su un set di dati di esempio esistente.

Per altre informazioni sulle query SQL, vedere:

Prerequisiti

L'esercitazione presuppone la presenza di un account e di una raccolta di Azure Cosmos DB. Questi requisiti non sono disponibili? Completare la Guida introduttiva di 5 minuti o l'esercitazione per sviluppatori per creare un account e una raccolta.

Query di esempio 1

Nel precedente documento della famiglia, la query SQL seguente restituisce i documenti in cui il campo ID corrisponde a WakefieldFamily. Poiché si tratta di un'istruzione SELECT *, l'output della query è il documento JSON completo:

Query

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

Risultati

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

Query di esempio 2

La query successiva restituisce tutti i nomi dei figli della famiglia il cui ID corrisponde a WakefieldFamily, ordinati in base al grado della classe frequentata.

Query

SELECT c.givenName 
FROM Families f 
JOIN c IN f.children 
WHERE f.id = 'WakefieldFamily'
ORDER BY f.children.grade ASC

Risultati

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

Passaggi successivi

In questa esercitazione sono state eseguite le operazioni seguenti:

  • È stato appreso come eseguire una query usando SQL

È ora possibile passare all'esercitazione successiva per imparare a distribuire i dati a livello globale.