【发布时间】:2016-02-15 23:18:03
【问题描述】:
我正在尝试在发电机数据库列表中执行最简单的操作之一“更新”。
表架构 -
businessId : String, customers: StringSet, itemCode : NumberSet
我通过 put 插入了一个条目 -
bussinessId = "sampleBusiness", cuatomers 0: "cust1", itemCode 0: 4554
我想使用更新添加更多项目,这是我尝试过的 -
var updateRequest = {
'TableName' : tableName,
'Key' : {
'businessId' : {
"S" : businessId
}
},
'UpdateExpression' : "SET itemCode[2] =:attrValue",
'ExpressionAttributeValues' : {
':attrValue' : {
"N" : "564564"
}
}
};
这给了我错误-
文档中提供的文档路径无效
我想追加新条目,所以也尝试了这个 -
var sm = [];
sm[0] = "56465";
//Add business to
var updateRequest = {
'TableName' : tableName,
'Key' : {
'businessId' : {
"S" : businessId
}
},
'UpdateExpression' : 'SET #attrName = list_append(#attrName, :attrValue)',
'ExpressionAttributeNames' : {
'#attrName' : 'itemCode'
},
'ExpressionAttributeValues' : {
':attrValue' : {
"NS" : sm
}
}
};
这给出了:
ValidationException: Invalid UpdateExpression: 运算符或函数的操作数类型不正确;运算符或函数:list_append,操作数类型:NS
也尝试过这个-
':attrValue' : {
"N" : "4564"
}
但同样的错误。
根据http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html 中提供的示例,它将一个新元素添加到FiveStar 评论列表中。表达式属性名称#pr为ProductReviews;属性值:r 是一个单元素列表。如果列表之前有两个元素,[0] 和 [1],那么新元素将是 [2]。
SET #pr.FiveStar = list_append(#pr.FiveStar, :r)
说:r是一个元素列表
我在这里遗漏了一些东西。请求是否有人可以提供帮助。纠结这个很久了。我只想使用 nodeJS 在 dynamo db 中的集合中附加元素。
【问题讨论】:
标签: node.js amazon-web-services set updates amazon-dynamodb