Node.js 如何使用nodeJS在Aws DynamoDB中进行更新查询

Node.js 如何使用nodeJS在Aws DynamoDB中进行更新查询,node.js,amazon-web-services,amazon-dynamodb,Node.js,Amazon Web Services,Amazon Dynamodb,我需要更新DynamoDB的一项,这是我的代码 const Aws = require('aws-sdk'); const endPoint= 'http://dynamodb.us-east-2.amazonaws.com'; const IAm_user_Key=process.env.IAM_USER_KEY; const IAm_user_Secret=process.env.IAM_USER_SECRET; Aws.config.update({ accessKeyId:IAm_us

我需要更新DynamoDB的一项,这是我的代码

const Aws = require('aws-sdk');
const endPoint= 'http://dynamodb.us-east-2.amazonaws.com';
const IAm_user_Key=process.env.IAM_USER_KEY;
const IAm_user_Secret=process.env.IAM_USER_SECRET;

Aws.config.update({ accessKeyId:IAm_user_Key,secretAccessKey:IAm_user_Secret,region:'us-east-2',endpoint:endPoint });

var docClient = new Aws.DynamoDB.DocumentClient();
var table = "cards";

var params={
        TableName:table,
        key:{ "cardid":clientData.data.cardid},
        AttributeValue:{"data":clientData.data}
  }

docClient.update(params, function(err, data) {
            if (err) {
                console.error("Unable to add item. Error JSON:", JSON.stringify(err, null, 2));
            } else {
                console.log("Added item:", JSON.stringify(data, null, 2));
            }
        })
在这里运行此代码时,我遇到了一些问题,这是我的错误

无法更新项目。错误JSON:{
“消息”:“参数中缺少必需的密钥”“key”, “代码”:“缺少所需参数”,
“时间”:“2019-07-20T07:47:06.490Z” }


但是你可以看到我在params中有Key object,但仍在努力解决这个问题。

我读了太多文档,但有一个愚蠢的错误,我发现这只是打字错误,params中的“Key”应该是大写的“Key”K,这是有效的。

问题在于Key, 您需要使用主键来查找要在表中更新的行,如SQL,如主键。在DynamoDB中 主键=PK+SK 例如,如果您的客户: PK='Cardd'和SK='name'
如果要放置,应使用docClient.update而不是docClient.put。有关更多信息,请参阅。看起来您正在将更新参数传递给put方法。@Armin抱歉,我犯了错误,我编辑了我需要docClient.update而不是put的问题。我犯了同样的错误:我有同样的问题,但我的密钥在caps中:(
var params={
        TableName:table,
        Key:{ "cardid":clientData.data.cardid, 'name': req.body.name},
        AttributeValue:{"data":clientData.data}
  }