查询条件丢失关键架构元素:validation错误

我正在试图使用下面的代码查询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表的分区键,并且需要find所有处于processing状态的作业。

您正尝试使用不包含主键的条件运行查询。 这是查询在DynamoDB中的工作方式 。 你需要扫描一下你的情况 ,但是,我不认为这是最好的select。

我想你想build立一个全局二级索引并用它来查询processing状态。