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á.
Ao consultar objetos no DynamoDB usando as operações Query
e Scan
, opcionalmente, você pode especificar um filter
que avalia os resultados e retorna apenas os valores desejados.
A propriedade de filtro de uma solicitação Scan
ou Query
tem a seguinte estrutura:
type DynamoDBExpression = {
expression: string;
expressionNames?: { [key: string]: string};
expressionValues?: { [key: string]: any};
};
Os campos são definidos da seguinte forma:
-
expression
-
A expressão da consulta. Para obter mais informações sobre como escrever expressões de filtro, consulte a documentação do DynamoDB e ScanFilter do QueryFilter DynamoDB. 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 na
expression
. O valor deve ser uma string que corresponde ao nome de 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). Isso deve ser especificado. Esse campo é opcional e deve ser preenchido apenas por substituições para espaços reservados de valor do atributo da expressão usados emexpression
.
Exemplo
Veja a seguir uma seção de filtro para uma solicitação, onde as entradas recuperadas do DynamoDB só são retornadas se o título começa com o argumento title
.
Aqui, usamos o util.transform.toDynamoDBFilterExpression
para criar automaticamente um filtro a partir de um objeto:
const filter = util.transform.toDynamoDBFilterExpression({
title: { beginsWith: 'far away' },
});
const request = {};
request.filter = JSON.parse(filter);
Isso gera o seguinte filtro:
{
"filter": {
"expression": "(begins_with(#title,:title_beginsWith))",
"expressionNames": { "#title": "title" },
"expressionValues": {
":title_beginsWith": { "S": "far away" }
}
}
}