Filtrar expressões para a operação de consulta no DynamoDB - Amazon DynamoDB

Filtrar expressões para a operação de consulta no DynamoDB

Se você precisar refinar ainda mais os resultados de Query, existe a opção de utilizar uma expressão de filtro. Uma expressão de filtro determina quais itens dos resultados de Query devem ser retornados para você. Todos os outros resultados serão descartados.

Uma expressão de filtro é aplicada depois que uma operação Query é concluída, mas antes que os resultados sejam retornados. Portanto, uma operação Query consome a mesma quantidade de capacidade de leitura, independentemente de uma expressão de filtro estar presente.

Uma operação Query pode recuperar um máximo de 1 MB de dados. Esse limite se aplica antes de a expressão de filtro ser avaliada.

Uma expressão de filtro não pode conter atributos de chave de partição ou de chave de classificação. É necessário especificar esses atributos na expressão de condição principal, não na de filtro.

A sintaxe de uma expressão de filtro é semelhante à de uma expressão de condição de chave. As expressões de filtro podem usar os mesmos comparadores, funções e operadores lógicos que uma expressão de condição principal. Além disso, as expressões de filtro podem usar o operador diferente de (<>), bem como os operadores OR, CONTAINS, IN, BEGINS_WITH, BETWEEN, EXISTS e SIZE. Para ter mais informações, consulte Principais expressões de condição para a operação de consulta no DynamoDB e Sintaxe para expressões de filtro e de condição.

exemplo

O exemplo da AWS CLI a seguir consulta a tabela Thread para encontrar um ForumName (chave de partição) e um Subject (chave de classificação) específicos. Dos itens que são encontrados, somente os threads de discussão mais populares são retornados – em outras palavras, apenas os threads com mais de um determinado número de Views.

aws dynamodb query \ --table-name Thread \ --key-condition-expression "ForumName = :fn and Subject = :sub" \ --filter-expression "#v >= :num" \ --expression-attribute-names '{"#v": "Views"}' \ --expression-attribute-values file://values.json

Os argumentos de --expression-attribute-values são armazenados no arquivo values.json.

{ ":fn":{"S":"Amazon DynamoDB"}, ":sub":{"S":"DynamoDB Thread 1"}, ":num":{"N":"3"} }

Observe que Views é uma palavra reservada no DynamoDB (consulte Palavras reservadas no DynamoDB), portanto, este exemplo usa #v como um espaço reservado. Para ter mais informações, consulte Nomes (aliases) de atributo de expressão no DynamoDB.

nota

Uma expressão de filtro remove itens do conjunto de resultados de Query. Se possível, evite usar Query onde você espera recuperar um grande número de itens, mas também precisa descartar a maioria desses itens.