我有一个用户表,其中包含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。