Amazon dynamodb 带value关键字的Dynamo DB扫描字段

Amazon dynamodb 带value关键字的Dynamo DB扫描字段,amazon-dynamodb,aws-cli,dynamodb-queries,Amazon Dynamodb,Aws Cli,Dynamodb Queries,我正试图根据一个列表项的值扫描一个dynamo db表,该列表项的名称中包含value。场地是 "TPMS.value": { "L": [ { "N": "0" }, { "N": "0" }, { "N": "0"

我正试图根据一个列表项的值扫描一个dynamo db表,该列表项的名称中包含
value
。场地是

"TPMS.value": {
    "L": [
      {
        "N": "0"
      },
      {
        "N": "0"
      },
      {
        "N": "0"
      },
      {
        "N": "0"
      }
    ]
  }
我想在
TPMS.value[0]!=0
我试过了

aws dynamodb scan \
    --table-name afdcm-app-demo-Telemetry-Int_Table \
    --filter-expression "TPMS.value[0] > :val"  \
    --expression-attribute-values '{":val":{"N":"0"}}'
但我一直得到
无效的FilterExpression:属性名是一个保留关键字;保留关键字:值
。是否有方法在字段名包含
值时运行扫描?

必须使用--expression属性名选项。根据文件():

表达式中属性名称的一个或多个替换标记。以下是使用ExpressionAttributeNames的一些用例:

  • 访问名称与DynamoDB保留字冲突的属性。

  • 为表达式中重复出现的属性名称创建占位符

  • 防止属性名称中的特殊字符在表达式中被误解


因此,在您的情况下,命令应类似于此:

aws dynamodb scan --table-name afdcm-app-demo-Telemetry-Int_Table --filter-expression "#VAL[0] > :val" --expression-attribute-names '{"#VAL":"TPMS.value"}' --expression-attribute-values '{":val":{"N":"0"}}'