Amazon dynamodb dynamodb扫描中的多重过滤器表达

Amazon dynamodb dynamodb扫描中的多重过滤器表达,amazon-dynamodb,aws-cli,Amazon Dynamodb,Aws Cli,我正在尝试在我的dynamodb中建立某个属性的直方图。 我认为最简单的方法是使用多个过滤器表达式 这是我使用单个过滤器表达式进行的基线查询,它可以正常工作 aws dynamodb scan --table-name test --select "COUNT" --filter-expression "contains(score, :s)" --expression-attribute-values '{ ":s": { "N": "1" } }' --limit 100 现在,我试图将其

我正在尝试在我的dynamodb中建立某个属性的直方图。
我认为最简单的方法是使用多个
过滤器表达式

这是我使用单个
过滤器表达式进行的基线查询,它可以正常工作

aws dynamodb scan --table-name test --select "COUNT" --filter-expression "contains(score, :s)" --expression-attribute-values '{ ":s": { "N": "1" } }' --limit 100
现在,我试图将其扩展到多个
过滤器表达式,但我不确定如何扩展。
我试过:

aws dynamodb scan --table-name test --select "COUNT" --filter-expression "score = :s" --filter-expression "score = :s1" --expression-attribute-values '{ ":s": { "N": "1" }, ":s1": { "N": "40" } }' --limit 100


过滤表达式是一种条件表达式。你可以。但是,在您的示例中,您可以不使用和/或运算符来组合表达式

aws dynamodb scan --table-name test --select "COUNT" \
--filter-expression "score IN :s, :s1" \
--expression-attribute-values '{ ":s": { "N": "1" }, ":s1": { "N": "40" } }' \
--limit 100

也许我来晚了。但是,他正在寻找类似的场景,却一无所获。仍在回答是否有其他人能从中受益

aws dynamodb scan --table-name test --select "COUNT" \
--filter-expression "score = :s OR score = :s1" \
--expression-attribute-values '{ ":s": { "N": "1" }, ":s1": { "N": "40" } }' \
--limit 100

aws dynamodb scan --table-name test --select "COUNT"  \
--filter-expression "(score between :s and :s1)"  \
--expression-attribute-values '{ ":s": { "N": "0" }, ":s1": { "N": "10" } }'

对于正在搜索
nodeJs
过滤器表达式的用户:

const参数={
TableName:“orderMessages”,
关键:{
订单号:,
},
过滤器表达式:“订单id=:ordrId或时间戳<:ts”,
表达式属性名称:{
“#订单id”:“订单id”,
“#时间戳”:“时间戳”
},
表达式属性值:{
“:ordrId”:订单号,
“:ts”:现在
},

}
这是按显示方式运行查询后返回的内容:调用扫描操作时发生错误(ValidationException):无效筛选器表达式:语法错误;标记:“:s”,靠近:“IN:s”,您如何在
--过滤器表达式
中写入属性?名称上是否有
?例如,使用
score
而不是
custom:attribute
aws dynamodb scan --table-name test --select "COUNT"  \
--filter-expression "(score between :s and :s1)"  \
--expression-attribute-values '{ ":s": { "N": "0" }, ":s1": { "N": "10" } }'