相关疑难解决方法(0)

AWS Lambda:如何将数字添加到Dynamodb中的NS集

问题

我尝试了几种方法,但未能找到如何将数字添加到NS集.这都是在lambda函数中运行的.

我正在努力实现的目标

我正在创建一个dynamodb表,其中十六进制中的不同颜色与一组id对齐.我正在优化表以进行快速读取并避免重复,这就是为什么我想为每个十六进制维护一组id.

我是如何向表中添加项目的:

let doc = require('dynamodb-doc');
let dynamo = new doc.DynamoDB();

var object = {
    'TableName': 'Hex',
    'Item': {
        'hex': '#FEFEFE',
        'ids': {
            'NS': [2,3,4]
        }
    }
}

dynamo.putItem(object, callback);
Run Code Online (Sandbox Code Playgroud)

结果如何

添加到表后的结果

然后我尝试在集合中添加更多ID

使用Dynamodb更新项目文档标准

var params = {
    "TableName" : "Hex",
    "Key": {
      "hex": "#FEFEFE"
    },
    "UpdateExpression" : "ADD #oldIds :newIds",
    "ExpressionAttributeNames" : {
      "#oldIds" : "ids"
    },
    "ExpressionAttributeValues": { 
      ":newIds" : {"NS": ["5", "6"]}
   },
};

dynamo.updateItem(params, callback);
Run Code Online (Sandbox Code Playgroud)

这会返回以下错误,因此dynamo认为:newIds是一个地图类型而不是一个集合(?)

"errorMessage": "Invalid UpdateExpression: Incorrect operand type …
Run Code Online (Sandbox Code Playgroud)

javascript set amazon-web-services amazon-dynamodb aws-lambda

5
推荐指数
2
解决办法
2295
查看次数