我尝试从数组中删除元素。这个操作
UpdateItemSpec updateItemSpec = new UpdateItemSpec()
.withPrimaryKey("id", id)
.withNameMap(new NameMap().with("#P", "myArray"))
.withValueMap(new ValueMap().withInt(":index", index))
.withUpdateExpression("REMOVE #P[:index]");
table.updateItem(updateItemSpec);
com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: Invalid UpdateExpression: Syntax error; token: ":index", near: "[:index]"
如果我删除ValueMap和concat字符串,就像这个"REMOVE #P["+index+"]"
一样,它工作正常,但这个解决方案看起来很难看(就像旧的错误的SQL注入东西)。有没有办法提供索引作为参数?
答案 0 :(得分:0)
删除 - 从项目中删除一个或多个属性
删除 - UpdateExpression
预计只有REMOVE的属性名称。它不应包含与 SET
类似的属性值。
除了字符串连接之外别无选择。