As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Consulta
O documento de mapeamento de Query
solicitações permite que você peça ao AWS AppSync resolvedor do DynamoDB que faça uma Query
solicitação ao DynamoDB e especifique o seguinte:
-
Expressão chave
-
Qual índice usar
-
Qualquer filtro adicional
-
Quantos itens retornar
-
Se deve usar leituras consistentes
-
direção da consulta (para frente ou para trás)
-
Token de paginação
O documento de mapeamento Query
possui a seguinte estrutura:
{ "version" : "2017-02-28", "operation" : "Query", "query" : { "expression" : "some expression", "expressionNames" : { "#foo" : "foo" }, "expressionValues" : { ":bar" : ... typed value } }, "index" : "fooIndex", "nextToken" : "a pagination token", "limit" : 10, "scanIndexForward" : true, "consistentRead" : false, "select" : "ALL_ATTRIBUTES" | "ALL_PROJECTED_ATTRIBUTES" | "SPECIFIC_ATTRIBUTES", "filter" : { ... }, "projection" : { ... } }
Os campos são definidos da seguinte forma:
Campos de consulta
-
version
-
As versões de definição de modelo
2017-02-28
e2018-05-29
são compatíveis atualmente. Este valor é obrigatório. -
operation
-
A operação do DynamoDB para execução. Para executar a operação
Query
do DynamoDB, ela deve ser definida comoQuery
. Este valor é obrigatório. -
query
-
A seção
query
permite especificar uma expressão de condição de chave que descreve quais itens recuperar do DynamoDB. Para obter mais informações sobre como escrever expressões de condição chave, consulte a documentação do KeyConditions DynamoDB. Essa seção deve ser especificada.-
expression
-
A expressão da consulta. Esse campo deve ser especificado.
-
expressionNames
-
As substituições para espaços reservados de nome do atributo da expressão, na forma de pares chave-valor. A chave corresponde a um espaço reservado de nome usado em
expression
e o valor deve ser uma string que corresponde ao nome do atributo do item no DynamoDB. Esse campo é opcional e deve ser preenchido apenas por substituições para espaços reservados de nome do atributo da expressão usados emexpression
. -
expressionValues
-
As substituições para espaços reservados de valor do atributo da expressão, na forma de pares chave-valor. A chave corresponde a um espaço reservado de valor usado na
expression
e o valor deve ser um valor digitado. Para obter mais informações sobre como especificar um "valor digitado", consulte Sistema de tipo (Mapeamento de solicitação). Este valor é obrigatório. Esse campo é opcional e deve ser preenchido apenas por substituições para espaços reservados de valor do atributo da expressão usados emexpression
.
-
-
filter
-
Um filtro adicional que pode ser usado para filtrar os resultados do DynamoDB antes que sejam retornados. Para obter mais informações sobre os filtros, consulte Filtros. Esse campo é opcional.
-
index
-
O nome do índice para consulta. A operação de consulta do DynamoDB permite que você faça a varredura em Índices secundários locais e Índices secundários globais, além do índice de chave primária para uma chave de hash. Se especificado, isso informa o DynamoDB para consultar o índice especificado. Se omitido, o índice da chave primária será consultado.
-
nextToken
-
O token de paginação para continuar uma consulta anterior. Isso seria obtido de uma consulta anterior. Esse campo é opcional.
-
limit
-
O número máximo de itens a serem avaliados (não necessariamente o número de itens correspondentes). Esse campo é opcional.
-
scanIndexForward
-
Um booliano que indica se a consulta deve ser para frente ou para trás. Esse campo é opcional e usa como padrão
true
. -
consistentRead
-
Um booleano que indica se deseja usar leituras consistentes ao consultar o DynamoDB. Esse campo é opcional e usa como padrão
false
. -
select
-
Por padrão, o AWS AppSync resolvedor do DynamoDB retorna somente atributos projetados no índice. Se forem necessários mais atributos, você poderá definir esse campo. Esse campo é opcional. Os valores compatíveis são:
-
ALL_ATTRIBUTES
-
Retorna todos os atributos de item da tabela ou índice especificado. Se você consultar um índice secundário local, o DynamoDB buscará todo o item da tabela pai para cada item correspondente no índice. Se o índice estiver configurado para projetar todos os atributos de item, todos os dados podem ser obtidos no índice secundário local, e nenhuma busca será necessária.
-
ALL_PROJECTED_ATTRIBUTES
-
Permitido apenas ao consultar um índice. Recupera todos os atributos que foram projetados no índice. Se o índice estiver configurado para projetar todos os atributos, esse valor de retorno é equivalente a especificar
ALL_ATTRIBUTES
. SPECIFIC_ATTRIBUTES
-
Retorna somente os atributos listados em
expression
deprojection
. Esse valor de retorno é equivalente a especificarexpression
deprojection
sem especificar nenhum valor paraSelect
.
-
projection
-
Uma projeção usada para especificar os atributos a serem retornados da operação do DynamoDB. Para obter mais informações sobre projeções, consulte Projeções. Esse campo é opcional.
Os resultados do DynamoDB são convertidos automaticamente em tipos GraphQL JSON e primitivos e estão disponíveis no contexto de mapeamento (). $context.result
Para obter mais informações sobre a conversão de tipo do DynamoDB, consulte Sistema de tipo (mapeamento da resposta).
Para obter mais informações sobre os modelos de mapeamento da resposta, consulte Visão geral do modelo de mapeamento do resolvedor.
Os resultados possuem a seguinte estrutura:
{ items = [ ... ], nextToken = "a pagination token", scannedCount = 10 }
Os campos são definidos da seguinte forma:
-
items
-
Uma lista que contém os itens retornados pela consulta do DynamoDB.
-
nextToken
-
Se existirem mais resultados,
nextToken
conterá um token de paginação que você pode usar em outra solicitação. Observe que AWS AppSync criptografa e ofusca o token de paginação retornado do DynamoDB. Isso impede que os dados da sua tabela sejam divulgados inadvertidamente para o chamador. Observe também que esses tokens de paginação não podem ser usados em diferentes resolvedores. -
scannedCount
-
O número de itens que corresponderam à expressão de condição da consulta, antes que uma expressão de filtro (se houve) fosse aplicada.
Exemplo
Veja a seguir um modelo de mapeamento para uma consulta getPosts(owner:
ID!)
do GraphQL.
Nesse exemplo, um índice secundário global em uma tabela é consultado para retornar todas as postagens de propriedade do ID especificado.
{ "version" : "2017-02-28", "operation" : "Query", "query" : { "expression" : "ownerId = :ownerId", "expressionValues" : { ":ownerId" : $util.dynamodb.toDynamoDBJson($context.arguments.owner) } }, "index" : "owner-index" }
Para obter mais informações sobre o DynamoDB, consulte a Query
API documentação do DynamoDB. API