amazon-dynamodb - dynamodb 对不在列表中的值进行过滤

标签 amazon-dynamodb dynamodb-queries

我正在尝试在 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"

最佳答案

您的问题正是 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)

关于amazon-dynamodb - dynamodb 对不在列表中的值进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60402960/

相关文章:

c# - 如何限制 .NET DynamoDB 中 context.Query 的结果数量

python - 根据表dynamodb python中的存在更新或插入项目

node.js - 我正在尝试从 DynamoDB 表获取各个属性,并在回调之前将它们转换为变量

amazon-dynamodb - batchLoad 在 Dynamo 中的全局二级索引上

amazon-web-services - AWS DynamoDB 是否会因条件表达式而失败的 Put Item(写入)操作消耗吞吐量或费用?

python - 更新 DynamoDB 时出现客户端错误?

amazon-dynamodb - DynamoDB查询二级索引ValidationException : Condition parameter type does not match schema type

amazon-web-services - AWS DynamoDB 如何计算 Query 的读取单元?

nosql - DynamoDB - 如何使用邻接列表模式处理更新?

javascript - 如何从 JavaScript 字符串中删除值