如何使用索引主键用新元素更新dynamodb表项目?

时间:2019-06-28 05:45:26

标签: node.js amazon-dynamodb

我正在尝试使用索引主键用新元素更新表中的项目。我的索引主键是storeId,我想更新或添加新元素到具有给定storeId的所有项目中。

我曾尝试在查询中使用更新表达式,当我尝试使用此查询时,它收到错误消息:“消息:提供的键元素与架构不匹配”。有什么办法可以解决这个问题?

这是Iam用于向现有Items添加新字段的代码,在Item中有storeAddress空数组用于添加新元素。或者我想将所有元素添加为项目中的新字段而不是数组

  var params = {
    TableName: "Users",
    IndexName: "storeId-index",
    Key: {
        "storeId": storeId,
    },
    "UpdateExpression": "SET #attrName =  :attrValue",
    "ExpressionAttributeNames": {
        "#attrName": "storeAddress"
    },

    "ExpressionAttributeValues": {
        ":attrValue": { title: title, street: street, city: city, state: state, country: country, postCode: postCode }
    },
    ReturnValues: "UPDATED_NEW"
};

docClient.update(params, (error) => {
    if (error) {
        console.log(error);

    }
    else {
        console.log("success");

    }
    // res.json({ id, name, info });
});  

得到错误“消息:'提供的关键元素与模式不匹配”​​。我没有找到一种使用索引主键(storeId)向表中的现有项目添加新元素的方法,这种情况在我看来并非唯一。

0 个答案:

没有答案