Delen via


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

VAN TOEPASSING OP: NoSQL

Azure Cosmos DB voor NoSQL biedt ondersteuning voor 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:

  • NoSQL-gegevens opvragen met de ingebouwde querysyntaxis

Prerequisites

U kunt de query's uitvoeren met behulp van Azure Cosmos DB Explorer in Azure Portal. You can also run queries by using the REST API or various SDKs.

Zie Query's in Azure Cosmos DB for NoSQL voor meer informatie over query's.

Sample document

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

Gezien het voorbeeldfamiliedocument retourneert de volgende query de documenten waarin het id-veld overeenkomt 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"

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
}

Selecteer een kruisproduct van een kindverzamelingsveld

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'

Results:

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

Next step