修改DynamoDB

时间:2016-12-07 13:18:58

标签: node.js amazon-dynamodb aws-sdk

我有一个用户表,其中包含username字段的索引。这使我可以通过用户名搜索用户。

当我将对象的username字段,fx从“Alice”更新为“Bob”时,当我随后调用时,没有任何项目返回给我:

// Fetch the user with username Bob
const params = {
  TableName: 'Users',
  IndexName: 'username-index',
  KeyConditionExpression: 'username = :value',
  ExpressionAttributeValues: {
    ':value': 'Bob'
  }
}

const result = await dynamo.query(params).promise()

在我看来,“Bob”没有添加到索引中。我是以错误的方式进行更新,还是有办法让我更新索引?

*******************************更新*************** ****************

这是用于更新用户名的代码:

const params = {
  TableName: 'Users',
  Key: { _id: USER_ID },
  UpdateExpression: 'SET username = :value',
  ExpressionAttributeValues: {
    ':value': username
  }
}
const result = await dynamo.update(params).promise()

我查看了AWS控制台并确认用户名实际上已被更改。此外,当我查看索引时,我可以看到username-index项目计数为18,而用户数为19。

0 个答案:

没有答案