【发布时间】:2021-10-22 13:28:12
【问题描述】:
我有一个具有以下字段的 dynamodb -
id (primary key) (string)
name (user name) (string)
score (sort key) (number)
player (type - regular/new etc.) (string)
我只是想从数据库中获得前 10 名。 按照 AWS https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#query-property的文档尝试了几个查询
这是我的查询代码-
const ddb = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10'});
function getItems(){
var params = {
ExpressionAttributeValues: {
":v1": {
S: "regular"
}
},
KeyConditionExpression: "player = :v1",
TableName: "cloudtag_result"
};
return ddb.scan(params).promise();
}
但它给了我以下错误
2021-08-21T08:36:43.092Z 1bbd5490-4248-4f06-94ea-724e6d23dac5 ERROR ValidationException: Query condition missed key schema element: id
at Request.extractError (/var/runtime/node_modules/aws-sdk/lib/protocol/json.js:52:27)
at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)
at Request.emit (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
at Request.emit (/var/runtime/node_modules/aws-sdk/lib/request.js:688:14)
at Request.transition (/var/runtime/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/var/runtime/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /var/runtime/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/var/runtime/node_modules/aws-sdk/lib/request.js:690:12)
at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:116:18) {
code: 'ValidationException',
time: 2021-08-21T08:36:43.031Z,
requestId: 'JH91VON2KGVNP7HF41VCBELTUVVV4KQNSO5AEMVJF66Q9ASUAAJG',
statusCode: 400,
retryable: false,
retryDelay: 47.72972319109784
}
【问题讨论】:
标签: node.js amazon-web-services amazon-dynamodb leaderboard