【问题标题】:dynamodb filtering on values NOT IN a listdynamodb 过滤不在列表中的值
【发布时间】:2020-02-25 20:52:48
【问题描述】:

我正在尝试在 dynamodb 扫描过滤器上使用 NOT 运算符

aws dynamodb scan --table-name dev-users \
--select SPECIFIC_ATTRIBUTES \
--projection-expression id \
--filter-expression "address.#state IN (:s1, :s2, :s3, :s4)" \
--expression-attribute-names '{"#state": "state"}' \
--expression-attribute-values '{ ":s1": { "S": "ND" }, ":s2": { "S": "CA" }, ":s3": { "S": "IL" }, ":s4": { "S": "VT" } }'

但是,它不起作用。 IN 本身确实有效。我错过了什么?

An error occurred (ValidationException) when calling the Scan operation: Invalid FilterExpression: Syntax error; token: "NOT", near: "#state NOT IN"

【问题讨论】:

    标签: amazon-dynamodb dynamodb-queries


    【解决方案1】:

    您的问题正是 DynamoDB 的错误消息告诉您的:您使用了错误的语法...。您应该参考 Amazon 的有关 FilterExpression 语法的文档 - 这是指向正确位置的链接:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html

    在您的情况下,没有运算符“NOT IN”。但您可以在整个条件上加上“NOT”,即NOT address.#state IN (:s1, :s2, :s3, :s4)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      • 2021-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多