QueryFilter (舊版) - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

QueryFilter (舊版)

注意

我們建議您盡可能使用新的表達式參數,而不要使用舊版參數。如需詳細資訊,請參閱在 DynamoDB 中使用表達式。如需取代此參數之新參數的特定資訊,請參閱 FilterExpression 改為使用 。

Query 操作中,舊版條件式參數 QueryFilter 是可在項目讀取後評估查詢結果並僅傳回所需值的一個條件。

此參數不支援 List 或 Map 類型的屬性。

注意

QueryFilter 會在項目讀取後套用;篩選程序不會使用任何額外的讀取容量單位。

如果在 QueryFilter 映射中提供一個以上條件,所有條件必須根據預設評估為 true。換句話說,條件是使用AND運算子組合。(您可以改用 ConditionalOperator (舊版) 參數將條件以 OR 連在一起。若要如此,則至少其中一個條件必須評估為 true,而不是全部都必須評估為 true。)

請注意,QueryFilter 不允許使用索引鍵屬性。您無法在分割區索引鍵或排序索引鍵上定義篩選條件。

每個 QueryFilter 元素包含要比較的屬性名稱,並具有下列資訊:

  • AttributeValueList:針對所提供的屬性進行評估的一或多個數值。清單中的數值數目依 ComparisonOperator 中指定的運算子而定。

    Number 類型的數值比較為數字。

    大於、等於或小於 的字串值比較是以 UTF-8 二進位編碼為基礎。例如,a 大於 Aa 大於 B

    針對 Binary 類型,每當 DynamoDB 比較二進位值時,都會將二進位資料的每個位元組視為不帶正負號。

    如需在 中指定資料類型的資訊JSON,請參閱 DynamoDB 低階 API

  • ComparisonOperator:用於評估屬性的比較程式。例如:等於、大於和小於。

    可以使用下列比較運算子:

    EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL | CONTAINS | NOT_CONTAINS | BEGINS_WITH | IN | BETWEEN

FilterExpression改用 - 範例

假設您想查詢 Music 資料表,並將條件套用至相符項目。您可以搭配 QueryFilter 參數使用 Query 請求,如本 AWS CLI 範例所示:

aws dynamodb query \ --table-name Music \ --key-conditions '{ "Artist": { "ComparisonOperator": "EQ", "AttributeValueList": [ {"S": "No One You Know"} ] } }' \ --query-filter '{ "Price": { "ComparisonOperator": "GT", "AttributeValueList": [ {"N": "1.00"} ] } }'

您可以改用 FilterExpression

aws dynamodb query \ --table-name Music \ --key-condition-expression 'Artist = :a' \ --filter-expression 'Price > :p' \ --expression-attribute-values '{ ":p": {"N":"1.00"}, ":a": {"S":"No One You Know"} }'