如何更新 Dynamodb 中字符串集 (SS) 类型的项目?

2023-12-29

我创建了一个字符串集类型的属性。 当我创建项目并分配 SS 类型的属性时,一切正常。 但是当我尝试更新此属性时,数据类型更改为列表(“L”)。

我试试这个:

qw = new AWS.DynamoDB.DocumentClient();

var params = {
  TableName : "myTable",
  Key: {
    "id": somekey
  },
  UpdateExpression: "set ssvar= :arrp",
  ExpressionAttributeValues: {
     ":arrp": [ "test", "test2" ]
  }
};

qw.update (etc.)

这导致 dynamodb 中的数据类型发生变化,我得到一个列表而不是字符串集:

"ssvar": {
            "L": [
                {
                    "S": "test"
                }, 
                {
                    "S": "test2"
                }
            ]
        }

我尝试过如下各种解决方案,但我的数据类型总是会改变。

  ExpressionAttributeValues: {
     ":arrp": 
        "SS": [ "test", "test2" ]
  }

如何更新字符串集类型的属性?


截至 2015 年 9 月,有createSet http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#createSet-property您可以使用 DocumentClient 中的函数来实现此目的。

UPDATE- 添加了示例

我修改了您的示例代码以使用此函数:

qw = new AWS.DynamoDB.DocumentClient();

var params = {
  TableName : "myTable",
  Key: {
    "id": somekey
  },
  UpdateExpression: "set ssvar= :arrp",
  ExpressionAttributeValues: {
     ":arrp": qw.createSet([ "test", "test2" ])
  }
};

qw.update (etc.)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何更新 Dynamodb 中字符串集 (SS) 类型的项目? 的相关文章

随机推荐