我想从DynamoDB表中获取一个特定的项目,该表由其唯一的分区键定义,这是我传递给该方法的字符串。我想从" false"中更改其中一个字符串属性。 to" 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"。
答案 0 :(得分:0)
我实际上使用了您的代码作为指南。
不要使用
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
})