[英]How to update item by primary key and other conditions?
我想通過email
(HASH PK), id
和verifyToken
更新項目。 我的查詢如下所示:
params =
TableName: 'users'
Key:
email:
S: 'example@email.com'
AttributeUpdates:
verified:
Action: 'PUT'
Value:
BOOL: true
verifyToken:
Action: 'DELETE'
ExpressionAttributeValues:
':id': { S: '123' }
':verifyToken': { S: 'XXX' }
ConditionExpression: 'id = :id and verifyToken = :verifyToken'
dynamodb.updateItem(params)
換句話說,我想更新項目,其中email ='example@email.com'並且id ='123'並且verifyToken ='XXX',但是我收到以下錯誤:
Can not use both expression and non-expression parameters in the same request:
Non-expression parameters: {AttributeUpdates}
Expression parameters: {ConditionExpression}
您正在將遺留參數( AttributeUpdates
)與表達式參數( ConditionExpression
)相結合,這些參數僅用於向后兼容。 正如錯誤所述,您無法做到這一點。
您需要將UpdateExpression
與ConditionExpression
結合使用。
這將是這樣的。 您可能需要在UpdateExpression
使用表達式屬性名稱/值:
ConditionExpression: 'id = :id and verifyToken = :verifyToken'
UpdateExpression: 'SET verified = true, REMOVE verifyToken'
有關更新表達式的更多信息,請參閱此文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.