Zelfstudie: Query's uitvoeren op gegevens in Azure Cosmos DB for NoSQL

VAN TOEPASSING OP: NoSQL

Azure Cosmos DB voor NoSQL ondersteunt het uitvoeren van query's op documenten met behulp van de ingebouwde querysyntaxis. Dit artikel bevat een voorbeelddocument en twee voorbeeldquery's en resultaten.

Dit artikel behandelt de volgende taken:

  • Query uitvoeren op NoSQL-gegevens met de ingebouwde querysyntaxis

Vereisten

In deze zelfstudie wordt ervan uitgegaan dat u een Azure Cosmos DB-account, -database en -container hebt.

Hebt u geen van deze resources? Voltooi deze quickstart: Een Azure Cosmos DB-account, -database, -container en -items maken vanuit de Azure Portal.

U kunt de query's uitvoeren met behulp van Azure Cosmos DB Explorer in de Azure Portal. U kunt ook query's uitvoeren met behulp van de REST API of verschillende SDK's.

Zie instelling gestart met query's voor meer informatie over query's.

Voorbeelddocument

In de query's in dit artikel wordt het volgende voorbeelddocument gebruikt.

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

Alle velden selecteren en een filter toepassen

Op basis van het voorbeelddocument van de familie retourneert de volgende query de documenten waarvan het id-veld overeenkomt met WakefieldFamily. Omdat het een SELECT *-instructie is, is de uitvoer van de query het volledige JSON-document:

Query:

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

Resultaten:

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

Een kruisproduct van een onderliggend verzamelingsveld selecteren

In de volgende query worden alle opgegeven namen geretourneerd van kinderen in de familie van wie de id overeenkomt met WakefieldFamily.

Query:

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

Resultaten:

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

Volgende stappen

In deze zelfstudie hebt u het volgende gedaan:

  • Geleerd hoe u query's uitvoert met behulp van de ingebouwde querysyntaxis

U kunt nu doorgaan met de volgende zelfstudie, waarin u leert hoe u uw gegevens globaal distribueert.