Compartilhar via


Tutorial: consultar dados no Azure Cosmos DB for NoSQL

APLICA-SE A: NoSQL

Azure Cosmos DB for NoSQL suporta à consulta de documentos usando a sintaxe de consulta interna. Este artigo fornece um exemplo de documento e dois exemplos de consultas e resultados.

Este artigo aborda as seguintes tarefas:

  • Consulta dados NoSQL com a sintaxe de consulta integrada

Prerequisites

Você pode executar as consultas usando o Azure Cosmos DB Explorer no portal do Azure. You can also run queries by using the REST API or various SDKs.

Para obter mais informações sobre consultas, consulte Consultas no Azure Cosmos DB para NoSQL.

Sample document

As consultas neste artigo usam o seguinte exemplo de documento.

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

Selecionar todos os campos e aplicar um filtro

Dado o exemplo de documento da família, a consulta a seguir retorna os documentos em que o campo ID corresponde a WakefieldFamily. Por se tratar de uma instrução SELECT *, a saída da consulta será todo o documento JSON:

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
}

Selecione um produto cruzado de um campo da coleção filho

A consulta a seguir retorna todos os nomes dos filhos na família cuja ID corresponde a WakefieldFamily.

Query:

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

Results:

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

Next step