使用 executeStatement 的 DynamoDB 参数化 PartiQL 查询

DynamoDB parameterized PartiQL query with executeStatement

我对 nodejs 中的 aws sdk 和 aws lamdba 中的 运行 进行了以下查询,但在使用参数数组时不起作用:

executeStatement({ 
  Statement: `select * from "myTable"."myIndex" where "pk" = '?' and "sortKey5" >= 50 ORDER BY "sortKey5" DESC`,
  Parameters: [{"S": pk}] })

使用参数直接内联的相同查询有效

executeStatement({ 
 Statement: `select * from "myTable"."myIndex" where "pk" = 'xxx' and "sortKey5" >= 50 ORDER BY "sortKey5" DESC` })

可能是带'?'的语法这是错误的,但我找不到任何具有其他语法的示例。

有谁知道语句怎么写才能使用参数吗?

看来,至少在 SELECT 语句中,需要省略 ? 周围的单引号,例如foobar = ? 而不是 foobar = '?'.

因此您的查询将是:

executeStatement({ 
  Statement: `select * from "myTable"."myIndex" where "pk" = ? and "sortKey5" >= 50 ORDER BY "sortKey5" DESC`,
  Parameters: [{"S": pk}]
})