如何在 AWS DynamoDb js sdk 中使用 begins_with?
How to use begins_with in AWS DynamoDb js sdk?
我有一个用例在 AWS Dynamodb table 的 主排序键 上应用 begins_with ],
我可以从 AWS 控制台使用 begins_with 关键条件查询 table,
我希望使用 AWS Javascript SDK 实现相同的效果。
我的 table -
中有以下字段
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 table 时使用 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,how to query with BEGINS_WITH
尝试:
const params = {
TableName: 'user_details',
KeyConditionExpression: '#user_id = :user_id and begins_with(#user_relation, :user_relation)',
ExpressionAttributeNames:{
"#user_id": "user_id",
"#user_relation": 'user_relation'
},
ExpressionAttributeValues: {
":user_id": "1234",
":user_relation": "followed-by"
}
}
我有一个用例在 AWS Dynamodb table 的 主排序键 上应用 begins_with ],
我可以从 AWS 控制台使用 begins_with 关键条件查询 table,
我希望使用 AWS Javascript SDK 实现相同的效果。
我的 table -
中有以下字段
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 table 时使用 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,how to query with BEGINS_WITH
尝试:
const params = {
TableName: 'user_details',
KeyConditionExpression: '#user_id = :user_id and begins_with(#user_relation, :user_relation)',
ExpressionAttributeNames:{
"#user_id": "user_id",
"#user_relation": 'user_relation'
},
ExpressionAttributeValues: {
":user_id": "1234",
":user_relation": "followed-by"
}
}