首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >提供的键元素与架构- updateItem不匹配

提供的键元素与架构- updateItem不匹配
EN

Stack Overflow用户
提问于 2018-10-25 03:24:17
回答 1查看 425关注 0票数 1
      var params = {
          ExpressionAttributeNames: {
            "#AT": "date"
          },
          ExpressionAttributeValues: {
            ":t": {
              BOOL: false
            }
          },
          Key: {
            "#AT": {
              N: data.Items[i].date.N
            },
            "accountid": {
              S: data.Items[i].accountid.S
            }
          },
          ReturnValues: "ALL_NEW",
          TableName: "tab",
          UpdateExpression: "SET #AT = :t"
        }
        db.updateItem(params, function (err, data) {
          if (err) console.log(err);
          else {
            //console.log(data);
          }
        });

正在发生的情况是代码不工作。它给出了这个错误:

消息:‘提供的键元素与架构不匹配’

以下是表中的详细信息:

主分区键-日期(数字)

主排序键-

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-25 03:30:34

问题是您的params中有一个组合键(date + accountid),但是您的表只配置了一个分区键。

或者使用以下命令:

  var params = {
    ExpressionAttributeValues: {
      ":t": { BOOL: false }
    },
    ExpressionAttributeNames: {
      "#at": "isRelevant",
    },
    Key: {
      "date": { N: data.Items[i].date.N }
    },
    ReturnValues: "ALL_NEW",
    TableName: "tab",
    UpdateExpression: "SET #at = :t"
  }
  db.updateItem(params, function (err, data) {
    if (err) {
      console.log(err);
    } else {
      //console.log(data);
    }
  });

或者,如果希望使用accountid作为排序关键字,则需要重新构建表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52976540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档