Tutorial: Abfragen von Daten in Azure Cosmos DB for NoSQL

GILT FÜR: NoSQL

Azure Cosmos DB for NoSQL unterstützt das Abfragen von Dokumenten mithilfe der integrierten Abfragesyntax. Dieser Artikel stellt ein Beispieldokument sowie zwei SQL-Beispielabfragen und Ergebnisse zur Verfügung.

In diesem Artikel werden die folgenden Aufgaben behandelt:

  • Abfragen von NoSQL-Daten mit der integrierten Abfragesyntax

Voraussetzungen

Dieses Tutorial setzt voraus, dass Sie über ein Konto, eine Datenbank und einen Container in Azure Cosmos DB verfügen.

Sie verfügen über keine dieser Ressourcen? Führen Sie diesen Schnellstart aus: Erstellen eines Azure Cosmos DB-Kontos, einer Datenbank, eines Containers sowie von Elementen mit dem Azure-Portal.

Sie können die Abfragen mit dem Azure Cosmos DB-Explorer im Azure-Portal ausführen. Sie können Abfragen auch mit der REST-API oder verschiedenen SDKs ausführen.

Weitere Informationen zu Abfragen finden Sie unter Erste Schritte mit Abfragen.

Beispieldokument

Die Abfragen in diesem Artikel verwenden das folgende Beispieldokument.

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

Auswählen aller Felder und Anwenden eines Filters

Im Beispiel des Familienbeispieldokuments gibt die folgende Abfrage die Dokumente zurück, in denen das Feld „ID“ mit WakefieldFamily übereinstimmt. Da es sich um eine SELECT *-Anweisung handelt, ist die Ausgabe der Abfrage das komplette JSON-Dokument:

Abfrage:

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

Ergebnisse:

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

Auswählen eines Kreuzprodukts eines Sammlungsfelds für Kinder

Die nächste Abfrage gibt alle Vornamen von Kindern der Familie zurück, deren ID WakefieldFamily entspricht.

Abfrage:

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

Ergebnisse:

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

Nächste Schritte

In diesem Tutorial haben Sie die folgenden Aufgaben ausgeführt:

  • Verwenden von Abfragen mit der integrierten Abfragesyntax

Sie können jetzt mit dem nächsten Tutorial fortfahren, um zu erfahren, wie Sie Ihre Daten global verteilen.