簡體   English   中英

不使用 ExpressionAttributeValues 的 DynamoDB ConditionExpression

[英]DynamoDB ConditionExpression without using ExpressionAttributeValues

我需要在不使用 ExpressionAttributeValues 的情況下以 '(#i.body_uncommon = 1)' 形式的 ConditionExpression 進行比較,語法應該是什么? 我查看了所有文檔,但沒有找到示例

例如這樣:

 response = table.update_item(
    Key={
        'ID': "jr_test"
    }
    , ConditionExpression='(#i.body_uncommon = 1)'
    , UpdateExpression=final_str

    , ExpressionAttributeNames={
        "#i": "items"
    }
)

但是這段代碼在這個地方拋出了一個語法錯誤:token: "1", near: "= 1)"

DynamoDB 不接受表達式中的文字值。 表達式必須結合使用占位符和ExpressionAttributeValues參數來指定文字值。

此 API 實質上強制執行最佳實踐以防止注入攻擊。

表達式

如果需要將屬性與值進行比較,請將表達式屬性值定義為占位符。

即使是接受特定值作為 arguments 的函數,例如ConditionExpression 的attribute_type類型 function ,也指定必須使用表達式屬性值定義這些值。

您必須為type參數使用表達式屬性值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM