我有一个使用案例,需要在 AWS DynamoDB 表的主排序键上应用 begins_with 条件,
我可以使用 AWS 控制台中的 begins_with 关键条件查询该表,
我希望能够通过 AWS Javascript SDK 实现相同的操作。
我的表格中有以下字段 -
1. user_id (主分区键)
2. user_relation (主排序键)
我尝试了以下代码 -
let AWS = require('aws-sdk');
let util = require('util');
AWS.config.update({
region: 'us-east-1'
});
let connection = new AWS.DynamoDB.DocumentClient();
let params = {
TableName: 'user_details',
KeyConditionExpression: 'user_id = :user_id and user_relation begins_with :user_relation',
ExpressionAttributeValues: {
':user_id': "1234",
':user_relation': "followed-by"
}
};
console.log('getQuery Params => ', params);
let dynamoDb = util.promisify(connection.query).bind(connection);
let results = await dynamoDb(params);
console.log('results => ', results);
我遇到了语法错误,在查询AWS DynamoDb表时如何正确使用begins_with?
错误信息 -
(node:40474) UnhandledPromiseRejectionWarning: ValidationException: Invalid KeyConditionExpression: Syntax error; token: "begins_with", near: "user_relation BE
GINS_WITH :user_relation"
参考资料 -
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#query-property
如何在DynamoDB中使用BEGINS_WITH进行查询
无法使用BEGINS_WITH查询DynamoDB列表项
user_id = :user_id and begins_with(user_relation, :user_relation)
- hoangdv