本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
QueryFilter (舊版)
注意
我們建議您盡可能使用新的表達式參數,而不要使用舊版參數。如需詳細資訊,請參閱在 DynamoDB 中使用表達式。如需取代此參數之新參數的特定資訊,請參閱 FilterExpression 改為使用 。。
在 Query
操作中,舊版條件式參數 QueryFilter
是可在項目讀取後評估查詢結果並僅傳回所需值的一個條件。
此參數不支援 List 或 Map 類型的屬性。
注意
QueryFilter
會在項目讀取後套用;篩選程序不會使用任何額外的讀取容量單位。
如果在 QueryFilter
映射中提供一個以上條件,所有條件必須根據預設評估為 true。換句話說,條件是使用AND
運算子組合。(您可以改用 ConditionalOperator (舊版) 參數將條件以 OR 連在一起。若要如此,則至少其中一個條件必須評估為 true,而不是全部都必須評估為 true。)
請注意,QueryFilter
不允許使用索引鍵屬性。您無法在分割區索引鍵或排序索引鍵上定義篩選條件。
每個 QueryFilter
元素包含要比較的屬性名稱,並具有下列資訊:
-
AttributeValueList
:針對所提供的屬性進行評估的一或多個數值。清單中的數值數目依ComparisonOperator
中指定的運算子而定。Number 類型的數值比較為數字。
大於、等於或小於 的字串值比較是以 UTF-8 二進位編碼為基礎。例如,
a
大於A
,a
大於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"} }'