我在DynamoDB表中有以下JSON对象 - 主要排序键是principle_id
{
"info": {
"key": "a45fa047",
"secret": "AYADeIbp",
"groups": [
"g-0",
"g-1",
"g-2",
"g-3"
],
"is_active": true
},
"principle_id": "aaa-0"
}
我希望能够通过该值移除特定的groups
元素,即“g-1”。
我能够使用序数位置执行此操作,即下面成功删除“g-1”。
Table table = dynamoDB.getTable("my_table");
UpdateItemSpec updateItemSpec = new UpdateItemSpec()
.withPrimaryKey("principle_id", "aaa-0")
.withUpdateExpression("remove info.groups[1]")
.withReturnValues(ReturnValue.ALL_NEW);
UpdateItemOutcome outcome = table.updateItem(updateItemSpec);
但我很难通过价值找到如何做到这一点。
对此的任何指示都将非常感激。
答案 0 :(得分:0)
据我所知,使用DynamoDB是不可能的。
UpdateItemSpec表示' withUpdateExpression'方法只需要一个有效的DyanmoDB表达式字符串。
UpdateExpressions文档只是说您需要使用文档路径引用。
然后only way described of getting items in a list using a document path使用列表位置(即info.groups [1])。如果您有地图,则可以通过地图键指定地图,如果是选项的话。