javascript - 如何在AWS DynamoDb js sdk中使用begins_with?

标签 javascript node.js amazon-web-services amazon-dynamodb aws-sdk

我有一个用例,要在 AWS Dynamodb 表的主排序键上应用 begins_with
我可以使用 AWS 控制台中的 begins_with 键条件查询表,
我希望使用 AWS Javascript SDK 实现相同的目标。

enter image description here enter image description here

我的表格中有以下字段 -
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,how to query with BEGINS_WITH

Can't Query DynamoDB with Begins_with for list of Items

最佳答案

尝试:

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"
  }
}

关于javascript - 如何在AWS DynamoDb js sdk中使用begins_with?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59192592/

相关文章:

javascript - Node.js 与 MySQL - 返回字符串

node.js - ReactJS-警告 : Unknown prop

bash - AWS 客户端 : how to start all machines found by tag

java - AWS Api Gateway JAVA SDK 将使用计划添加到 API key

javascript - 如何在 ASP.NET MVC 中组织外部 JavaScript 文件

javascript - Meteor.js 提供 javascript 文件,无需 (function() { ... }).call(this)

javascript - jQuery 焦点不工作

javascript - 如何创建格式为 "2008:05:30 15:56:01"的日期

javascript获取系统时区的时间戳而不是UTC

php - 通过代理服务器访问 Import.io API