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

标签 node.js amazon-web-services amazon-dynamodb

我创建了一个字符串集类型的属性。 当我创建 Item 并分配一个 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您可以为此使用的 DocumentClient 中的函数。

更新 - 添加示例

我已经修改了您的示例代码以使用此功能:

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.)

关于node.js - 如何更新字符串集 (SS) 类型的 Dynamodb 中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37194794/

相关文章:

javascript - Amazon Lambda 不会写入 DynamoDB

node.js - 在 ReactJS 中使用命令行参数

node.js - 从 Firebase Cloud Functions 将数据发送回 Android

amazon-web-services - 在 KOP 中定义自定义 SSH key 或查找自动生成的 SSH key

amazon-web-services - 如何将 SNS 主题写入 AWS 控制台中的 CloudWatch 日志?

linux - 用于提高 Amazon Linux AMI 中 CPU 利用率的命令

node.js - 无法在nodejs中导入typescript文件

android - 通过 cmd nodejs [windows 7] 的 Phonegap 安装问题

swift - AWS Dynamodb 对象映射器错误

java - 测试枚举的常规 DynamoDBMarshalling