

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á.

# Filtros
<a name="js-aws-appsync-resolver-reference-dynamodb-filter"></a>

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](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.QueryFilter.html) [e ScanFilter](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/LegacyConditionalParameters.ScanFilter.html) 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 em `expression`.

** `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)](https://docs.aws.amazon.com/appsync/latest/devguide/js-resolver-reference-dynamodb.html#js-aws-appsync-resolver-reference-dynamodb-typed-values-request). 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 em `expression`.

## Exemplo
<a name="js-id18"></a>

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