Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
112 lines (80 sloc) 5.61 KB
title description author ms.author ms.service ms.subservice ms.topic ms.date ms.reviewer ms.openlocfilehash ms.sourcegitcommit ms.translationtype ms.contentlocale ms.lasthandoff ms.locfileid
Como consultar dados de tabela no Azure Cosmos DB?
Saiba como consultar dados de tabela no Azure Cosmos DB
wmengmsft
wmeng
cosmos-db
cosmosdb-table
tutorial
05/21/2019
sngun
161b424c5c89d34eaa55181c0d6ca0515b376168
59fd8dc19fab17e846db5b9e262a25e1530e96f3
HT
pt-BR
05/21/2019
65978762

Tutorial: Consultar o Azure Cosmos DB usando a API de Tabela

A API de Tabela do Azure Cosmos DB oferece suporte a consultas de OData e LINQ em dados de chave/valor (tabela).

Este artigo aborda as seguintes tarefas:

[!div class="checklist"]

  • Consultar dados com a API de Tabela

As consultas neste artigo usam a seguinte tabela de exemplo People:

PartitionKey RowKey Email PhoneNumber
Harp Walter Walter@contoso.com 425-555-0101
Smith Ben Ben@contoso.com 425-555-0102
Smith Jeff Jeff@contoso.com 425-555-0104

Consulte Consultar tabelas e entidades para obter detalhes sobre como executar consultas usando a API de tabela.

Para obter mais informações sobre os recursos premium que o Azure Cosmos DB oferece, consulte Azure Cosmos DB API de Tabela e Desenvolver com a API de Tabela em .NET.

Pré-requisitos

Para essas consultas funcionarem, você deve ter uma conta do Azure Cosmos DB e ter dados de entidade no contêiner. Não tenho nenhum deles? Complete o Guia de início rápido de cinco minutos ou o tutorial de desenvolvedor para criar uma conta e preencher seu banco de dados.

Consultar em PartitionKey e RowKey

Como as propriedades PartitionKey e RowKey formam a chave primária de uma entidade, é possível utilizar a seguinte sintaxe especial para identificar a entidade:

Consulta

https://<mytableendpoint>/People(PartitionKey='Harp',RowKey='Walter')  

Resultados

PartitionKey RowKey Email PhoneNumber
Harp Walter Walter@contoso.com 425-555-0104

Como alternativa, você pode especificar essas propriedades como parte da opção $filter, conforme mostra a seção a seguir. Observe que os nomes de propriedade de chave e valores constantes diferenciam maiúsculas de minúsculas. As propriedades PartitionKey e RowKey são do tipo Cadeia de caracteres.

Consultar utilizando um filtro OData

Ao construir uma cadeia de caracteres de filtro, lembre-se destas regras:

  • Use os operadores lógicos definidos pela Especificação do Protocolo OData para comparar uma propriedade a um valor. Observe que você não pode comparar uma propriedade com um valor dinâmico. Um lado da expressão deve ser uma constante.
  • O nome da propriedade, o operador e um valor constante devem ser separados por espaços codificados por URL. Um espaço é codificado por URL como %20.
  • Todas as partes da cadeia de caracteres de filtro diferenciam maiúsculas de minúsculas.
  • O valor da constante deve ser do mesmo tipo de dados como a propriedade para que o filtro retorne resultados válidos. Para obter informações sobre tipos de propriedades com suporte, consulte Noções básicas sobre o modelo de dados do serviço Tabela.

Veja um exemplo de consulta que mostra como filtrar por PartitionKey e as propriedades de Email usando um OData $filter.

Consulta

https://<mytableapi-endpoint>/People()?$filter=PartitionKey%20eq%20'Smith'%20and%20Email%20eq%20'Ben@contoso.com'

Para obter mais informações sobre como construir expressões de filtro para vários tipos de dados, consulte Consultar tabelas e entidades.

Resultados

PartitionKey RowKey Email PhoneNumber
Smith Ben Ben@contoso.com 425-555-0102

Consultar utilizando LINQ

Você também pode consultar utilizando o LINQ, o que resulta em expressões de consulta Odata correspondentes. Veja um exemplo de como criar consultas usando o SDK do .NET.:

CloudTableClient tableClient = account.CreateCloudTableClient();
CloudTable table = tableClient.GetTableReference("People");

TableQuery<CustomerEntity> query = new TableQuery<CustomerEntity>()
    .Where(
        TableQuery.CombineFilters(
            TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "Smith"),
            TableOperators.And,
            TableQuery.GenerateFilterCondition("Email", QueryComparisons.Equal,"Ben@contoso.com")
    ));

await table.ExecuteQuerySegmentedAsync<CustomerEntity>(query, null);

Próximas etapas

Neste tutorial, você fez o seguinte:

[!div class="checklist"]

  • Aprendeu a consultar utilizando a API de Tabela

Agora você pode prosseguir para o próximo tutorial e aprender a distribuir seus dados globalmente.

[!div class="nextstepaction"] Distribuir os dados globalmente

You can’t perform that action at this time.