ScanFilter (舊版) - Amazon DynamoDB

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

ScanFilter (舊版)

注意

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

Scan 操作中,舊版條件式參數 ScanFilter 是可評估掃描結果並僅傳回所需值的一個條件。

注意

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

如果在 ScanFilter 映射中指定一個以上條件,所有條件必須根據預設評估為 true。換句話說,條件是ANDed在一起的。(您可以改用 ConditionalOperator (舊版) 參數將條件以 OR 連在一起。若要如此,則至少其中一個條件必須評估為 true,而不是全部都必須評估為 true。)

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

  • 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 資料表,並將條件套用至相符項目。您可以搭配 ScanFilter 參數使用 Scan 請求,如本 AWS CLI 範例所示:

aws dynamodb scan \ --table-name Music \ --scan-filter '{ "Genre":{ "AttributeValueList":[ {"S":"Rock"} ], "ComparisonOperator": "EQ" } }'

您可以改用 FilterExpression

aws dynamodb scan \ --table-name Music \ --filter-expression 'Genre = :g' \ --expression-attribute-values '{ ":g": {"S":"Rock"} }'