Node.js Can';t查询DynamoDB,以\u开头,用于项目列表
我已经尝试从DynamoDB查询数据两天了。让我发疯 我在办公室里有一张桌子。假设有两个办公室,科克和都柏林。我有一个名为“deskName”的列,它的名称类似于“cork1”、“cork2”、“dub1”、“dub2”。我希望能够查询表中包含“cork”或“dub”的项目,因为它们在同一个表中,但我不希望扫描整个表 代码: 亚马尔: 错误:Node.js Can';t查询DynamoDB,以\u开头,用于项目列表,node.js,amazon-web-services,amazon-dynamodb,Node.js,Amazon Web Services,Amazon Dynamodb,我已经尝试从DynamoDB查询数据两天了。让我发疯 我在办公室里有一张桌子。假设有两个办公室,科克和都柏林。我有一个名为“deskName”的列,它的名称类似于“cork1”、“cork2”、“dub1”、“dub2”。我希望能够查询表中包含“cork”或“dub”的项目,因为它们在同一个表中,但我不希望扫描整个表 代码: 亚马尔: 错误: ValidationException: Query key condition not supported 当我有条件='cork-1'时,我设法
ValidationException: Query key condition not supported
当我有条件='cork-1'时,我设法让一件物品回来。我想买每一件以“软木塞”开头的东西
谢谢你你得到了这个
Syntax error in module 'api/desks/get': SyntaxError
KeyConditionExpression: "#deskName = :deskName",
^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Unexpected identifier
因为这个
const params = {
TableName: process.env.DYNAMODB_DESKS_TABLE,
IndexName: 'deskName'
KeyConditionExpression: "#deskName = :deskName",
ExpressionAttributeNames:{
"#deskName": "deskName"
},
ExpressionAttributeValues: {
":deskName": "cork"
}
}
JavaScript对象需要在每个属性后面加一个逗号。IndexName:'deskName'
之后缺少一个
我建议使用,因为它可以轻松地将Javascript数据类型映射到DynamoDB数据类型。以下是我可以收集到的信息:
TableName: process.env.DYNAMODB_DESKS_TABLE,
IndexName: 'deskName',
什么是错误或问题?完全忘记添加它了。很抱歉,我现在将它添加到问题中。@MarkB现在在那里添加了错误,谢谢!是不是
deskName
您没有在yaml文件中显示的二级索引的名称?如果不确切知道您的表数据是什么样子,我真的无法确定如何修复它。它是在尝试使用DynamoDB之前,您确实需要对其进行更多的阅读。我尝试添加了这一点,但不幸的是,它没有起作用:(
const params = {
TableName: process.env.DYNAMODB_DESKS_TABLE,
IndexName: 'deskName'
KeyConditionExpression: "#deskName = :deskName",
ExpressionAttributeNames:{
"#deskName": "deskName"
},
ExpressionAttributeValues: {
":deskName": "cork"
}
}
TableName: process.env.DYNAMODB_DESKS_TABLE,
IndexName: 'deskName',
ExpressionAttributeValues: {
":deskName": { "S": "cork" }
}