我有一个包含ID和名称的表,我有一个GSI索引,分区键为 theName 和排序列 Last_attended 。我正在尝试使用Lambda查询它,但无法返回任何结果。我一直在围绕格式错误。我将DocumentClient与查询方法配合使用,每次运行它都会不断给我一个不同的错误。 不确定我在这里缺少什么,我们将不胜感激.....
!-数据
{
"id": 20919382411,
"Belt_awarded": "green",
},
{
"id": 20919382412,
"Belt_awarded": "yellow",
}
!---代码
const docClient = new AWS.DynamoDB.DocumentClient()
const params = {
TableName : `students`,
"IndexName": "theName-Last_attended-index",
KeyConditionExpression: '#id = :id_val',
ExpressionAttributeValues: { ":id_val": {"N": "20919382411"}, ':v_name': { 'S': 'joe' } }
}
答案 0 :(得分:1)
您的ExpressionAttributeNames
在哪里?
您将#id
定义为表达式属性,但没有声明任何ExpressionAttributeNames
您正在使用文档客户端。应该是这样的
const params = {
TableName: 'students',
IndexName: 'Belt_awarded-index',
KeyConditionExpression: '#Belt_awarded = :Belt_awarded',
ExpressionAttributeNames: {
'#Belt_awarded': 'Belt_awarded'
},
ExpressionAttributeValues: {
':Belt_awarded': 'yellow'
},
};