Dynamodb - 按值除去序号位置的数组元素

时间:2018-01-24 14:39:20

标签: amazon-dynamodb

我在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);

但我很难通过价值找到如何做到这一点。

对此的任何指示都将非常感激。

1 个答案:

答案 0 :(得分:0)

据我所知,使用DynamoDB是不可能的。

UpdateItemSpec表示' withUpdateExpression'方法只需要一个有效的DyanmoDB表达式字符串。

UpdateExpressions文档只是说您需要使用文档路径引用。

然后only way described of getting items in a list using a document path使用列表位置(即info.groups [1])。如果您有地图,则可以通过地图键指定地图,如果是选项的话。