我创建了一个字符串集类型的属性。 当我创建 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/