当我的密钥被称为密钥时如何进行更新
how to do the update when my key is called key
我在 dynamoDB 中进行更新时遇到问题,在 dyanamo 中执行更新时它告诉我不能使用 key 关键字
"message": "Value provided in ExpressionAttributeNames unused in expressions: keys: {#keyid}",
"code": "ValidationException",
"time": "2022-05-06T00:24:03.502Z",
使用 ExpressionAttributeNames 时,我必须将密钥与不同的名称“Key”相关联,但在 table 中,它的 ID 称为密钥,并且在更新我的代码时会生成先前的错误。
function updateUser(key, sortkey, dateFiling) {
try {
let params = {
TableName: env.getEnv(CTE.User),
Key: { "#keyid": key , "sortkey": sortkey },
UpdateExpression: "set dateFiling = :dateFiling",
ExpressionAttributeNames: { '#keyid': 'key' },
ExpressionAttributeValues: { ":dateFiling": dateFiling }
};
await db.updateItem(params);
console.log(params);
}
catch (error) {
console.log('Error in updateUser %j:', error);
}
}
我的疑问恰恰与 ExpressionAttributeNames 有关,因为它不使用 keyid 信封来引用密钥,并且对保留字的使用没有问题。有人可以帮帮我吗。请
Key
参数接受 reserved keywords:
Key: { "key": key , "sortkey": sortkey },
保留关键字是 expressions 中的 no-nos,如 UpdateExpression
。 DynamoDB 抱怨您没有在表达式中使用 ExpressionAttributeNames
,这是事实。删除它。
我在 dynamoDB 中进行更新时遇到问题,在 dyanamo 中执行更新时它告诉我不能使用 key 关键字
"message": "Value provided in ExpressionAttributeNames unused in expressions: keys: {#keyid}", "code": "ValidationException", "time": "2022-05-06T00:24:03.502Z",
使用 ExpressionAttributeNames 时,我必须将密钥与不同的名称“Key”相关联,但在 table 中,它的 ID 称为密钥,并且在更新我的代码时会生成先前的错误。
function updateUser(key, sortkey, dateFiling) {
try {
let params = {
TableName: env.getEnv(CTE.User),
Key: { "#keyid": key , "sortkey": sortkey },
UpdateExpression: "set dateFiling = :dateFiling",
ExpressionAttributeNames: { '#keyid': 'key' },
ExpressionAttributeValues: { ":dateFiling": dateFiling }
};
await db.updateItem(params);
console.log(params);
}
catch (error) {
console.log('Error in updateUser %j:', error);
}
}
我的疑问恰恰与 ExpressionAttributeNames 有关,因为它不使用 keyid 信封来引用密钥,并且对保留字的使用没有问题。有人可以帮帮我吗。请
Key
参数接受 reserved keywords:
Key: { "key": key , "sortkey": sortkey },
保留关键字是 expressions 中的 no-nos,如 UpdateExpression
。 DynamoDB 抱怨您没有在表达式中使用 ExpressionAttributeNames
,这是事实。删除它。