如何动态替换Dynamodb中的条件参数?

时间:2019-01-04 10:48:41

标签: amazon-dynamodb dynamodb-queries

当前代码示例:

Scan * from table_name where name='ajith' and lastname='gupta';

在实际情况下,我将获得不同的值。我需要在上面的查询中传递这些参数并获取输出。另外,最好防止数据注入。

所需:

Scan * from table_name where name=? and lastname=?;

1 个答案:

答案 0 :(得分:0)

使用“表达式属性名称”和“表达式属性值”参数。

使用DocumentClient的Javascript示例:

let params = {
  TableName: 'table_name',
  KeyConditionExpression: '#lname = :lname and #name = :name',
  ExpressionAttributeNames: {
    '#name': 'name',
    '#lname': 'lastname'
  },
  ExpressionAttributeValues: {
    ':name': 'ajith',
    ':lname': 'qupta',
  }
}
dynamodbDocumentClient.query(params).promise().then(result => {
  // soSomethingWithTheResultHere
})

此示例假定您有一个表,该表的分区和排序键分别为namelastname 有关查询的更多信息,请参见https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.html