首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >DynamoDB: ExpressionAttributeNames中提供的值未在表达式中使用:键:{#date}

DynamoDB: ExpressionAttributeNames中提供的值未在表达式中使用:键:{#date}
EN

Stack Overflow用户
提问于 2018-10-24 05:46:10
回答 2查看 11.2K关注 0票数 6

我正在尝试通过将isRelevant的值更改为true来更新项目

代码语言:javascript
复制
              var params = {
                  TableName: "test",
                  Key: {
                      "#date": data.Items[i].date.N,
                      "accountid": data.Items[i].accountid.S
                  },
                  UpdateExpression: "set #uu = :x",
                  ExpressionAttributeValues: {
                      ":x": {"BOOL": false}
                  },
                  ExpressionAttributeNames: {
                       '#uu': "isRelevant",
                       '#date': "date"
                  }
              };

              docClient.update(params, function(err, data) {
                  if (err) console.log(err);
                  else {
                      console.log('worked');
                  }
              });

这段代码中有什么错误?我尝试了所有可能的方法,但仍然不起作用!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-24 06:04:15

你不需要在dynamo中为你的键使用属性名映射。

目前,您的params读起来就像您有一个名为'#date‘的键,并且您随机声明了一个名为'#date’的属性,但您并没有使用它。

相反,请尝试:

代码语言:javascript
复制
var params = {
  TableName: "test",
  Key: { "date": data.Items[i].date, "accountid": data.Items[i].accountid },
  UpdateExpression: "set #uu = :x",
  ExpressionAttributeValues: { ":x": false },
  ExpressionAttributeNames: { '#uu': "isRelevant" }
};

另外--当使用DynamoDB.DocumentClient时,你应该使用JSON值,它将以发电机类型的格式处理编组信息。

票数 4
EN

Stack Overflow用户

发布于 2018-10-24 13:49:02

如果您date id在dynamoDB中不是Key,那么您就必须在ConditionExpression中使用

示例:

代码语言:javascript
复制
let queryParams = {
      TableName: "test",
      Key: {
        'accountid': data.Items[i].accountid
      },
      UpdateExpression: "set #uu = :x",
      ConditionExpression: 'date = :date',
      ExpressionAttributeValues: {
        ':x': false,
        ':date': data.Items[i].date,
      },
      ExpressionAttributeNames: {
        '#uu': "isRelevant"
   }
};
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52958274

复制
相关文章

相似问题

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