我正在尝试使用以下代码查询 dynamodb
:
const AWS = require('aws-sdk');
let dynamo = new AWS.DynamoDB.DocumentClient({
service: new AWS.DynamoDB(
{
apiVersion: "2012-08-10",
region: "us-east-1"
}),
convertEmptyValues: true
});
dynamo.query({
TableName: "Jobs",
KeyConditionExpression: 'sstatus = :st',
ExpressionAttributeValues: {
':st': 'processing'
}
}, (err, resp) => {
console.log(err, resp);
});
当我运行它时,我收到一条错误消息:
ValidationException: Query condition missed key schema element: id
我不明白。我已将 id
定义为 jobs
表的分区键,需要找到所有处于 processing
状态的作业。
原文由 Suhail Gupta 发布,翻译遵循 CC BY-SA 4.0 许可协议
您正在尝试使用不包含主键的条件运行查询。这就是 查询在 DynamoDB 中的工作方式。您需要对 您的案例中的信息进行扫描,但是,我认为这不是最好的选择。
我认为您想设置一个 全局二级索引 并使用它来查询
processing
状态。