Todos os produtos
Search
Central de documentação

Tablestore:Executar uma consulta aninhada

Última atualização: Jul 03, 2026

Este tópico descreve como executar consultas aninhadas para consultar dados nas linhas filhas de colunas aninhadas. Utilize a operação NestedQuery para encapsular a coluna aninhada antes de consultá-la. Ao chamar a operação NestedQuery, especifique uma subconsulta de qualquer tipo e o caminho da coluna aninhada.

Pré-requisitos

Parâmetros

Parâmetro

Descrição

Path

Caminho da coluna aninhada. O caminho segue uma estrutura semelhante a uma árvore. Por exemplo, news.title indica a subcoluna title dentro da coluna news do tipo aninhado.

Query

Consulta aplicada à subcoluna dentro da coluna aninhada. A consulta pode ser de qualquer tipo.

ScoreMode

Defina qual valor utilizar para calcular a pontuação quando a coluna contém múltiplos valores.

TableName

Nome da tabela de dados.

IndexName

Nome do índice de pesquisa.

ColumnsToGet

Determina se todas as colunas das linhas que atendem às condições da consulta devem ser retornadas. Configure os parâmetros ReturnAll, Columns e ReturnAllFromIndex conforme necessário.

Por padrão, ReturnAll é false, ou seja, apenas as colunas de chave primária são retornadas. Para retornar colunas adicionais, utilize uma das seguintes opções:

  • Defina Columns para especificar quais colunas retornar.

  • Defina ReturnAllFromIndex como true para retornar todas as colunas presentes no índice de pesquisa.

Defina ReturnAll como true para retornar todas as colunas da tabela de dados.

Exemplo

O código de exemplo a seguir demonstra como consultar linhas em que o valor da subcoluna nested_1, dentro da coluna col_nested, seja "tablestore". Todas as colunas do índice de pesquisa são retornadas.

/// <summary>
/// Query the rows in which the value of the col1_nested.nested_1 column is "tablestore". In this example, the col1_nested column is a nested column and contains the nested_1 and nested_2 subcolumns. 
/// </summary>
/// <param name="otsClient"></param>
public static void NestedQuery(OTSClient otsClient)
{
    var searchQuery = new SearchQuery();
    // Return the total number of rows that meet the query conditions. 
    searchQuery.GetTotalCount = true;
    var nestedQuery = new NestedQuery();
    nestedQuery.Path = "col1_nested"; // Specify the path of the nested column. 
    TermQuery termQuery = new TermQuery("col1_nested.nested_1",new ColumnValue("tablestore"));// Construct a subquery of for the nested query. 
    nestedQuery.Query = termQuery;
    nestedQuery.ScoreMode = ScoreMode.None;

    var request = new SearchRequest(TableName, IndexName, searchQuery);
    // You can specify the ColumnsToGet parameter to return the columns that you specify, all columns in the rows that meet the query conditions, or all columns in the search index. If you do not specify this parameter, only the primary key columns are returned. 
    request.ColumnsToGet = new ColumnsToGet()
    {
        // Return all columns in the search index. 
        ReturnAllFromIndex = true
        // Return the columns that you specify. 
        //Columns = new List<string>() { Long_type_col, Text_type_col, Keyword_type_col }
        // Return all columns in the rows that meet the query conditions. 
        //ReturnAll = true
    };

    var response = otsClient.Search(request);

    Console.WriteLine("Total Count:" + response.TotalCount); // Display the total number of rows that meet the query conditions instead of the number of returned rows. 
}

Perguntas frequentes

Referências