我想从我的 DynamoDB 表中获取一个特定的项目,该项目由其唯一的分区键定义,这是一个我已传递到方法中的字符串。然后我想将其中一个字符串属性从“false”更改为“true”。
这是我目前的代码
var updatedValue: AWSDynamoDBAttributeValue = AWSDynamoDBAttributeValue()
updatedValue.S = "true"
var updateInput: AWSDynamoDBUpdateItemInput = AWSDynamoDBUpdateItemInput()
updateInput.tableName = "knot-listings"
updateInput.key = ["ID": self.ID]
var valueUpdate: AWSDynamoDBAttributeValueUpdate = AWSDynamoDBAttributeValueUpdate()
valueUpdate.value = updatedValue
valueUpdate.action = AWSDynamoDBAttributeAction.Put
updateInput.attributeUpdates = ["Updated": valueUpdate]
updateInput.returnValues = AWSDynamoDBReturnValue.UpdatedNew
self.dynamoDB.updateItem(updateInput).waitUntilFinished()
self.ID
指的是唯一标识符字符串。我想选择一个名为“sold”的属性并将其值更改为“true”。
最佳答案
我实际上使用了您的代码作为指南。
不要使用
self.dynamoDB.updateItem(updateInput).waitUntilFinished()
而是相反
dynamoDB.updateItem(updateInput).continueWithExecutor(AWSExecutor.mainThreadExecutor(), withBlock: { (task:AWSTask!) -> AnyObject! in
if (task.error == nil) {
}
return nil
})
总的来说
var updatedValue: AWSDynamoDBAttributeValue = AWSDynamoDBAttributeValue()
updatedValue.S = "true"
var updateInput: AWSDynamoDBUpdateItemInput = AWSDynamoDBUpdateItemInput()
updateInput.tableName = "knot-listings"
updateInput.key = ["ID": self.ID]
var valueUpdate: AWSDynamoDBAttributeValueUpdate = AWSDynamoDBAttributeValueUpdate()
valueUpdate.value = updatedValue
valueUpdate.action = AWSDynamoDBAttributeAction.Put
updateInput.attributeUpdates = ["attributeName": newAttributeValue]
updateInput.returnValues = AWSDynamoDBReturnValue.UpdatedNew
dynamoDB.updateItem(updateInput).continueWithExecutor(AWSExecutor.mainThreadExecutor(), withBlock: { (task:AWSTask!) -> AnyObject! in
if (task.error == nil) {
}
return nil
})
关于ios - 更新 DynamoDB (Swift) 中特定项目的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34834452/