Amazon dynamodb 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 现在,我试图将其
我认为最简单的方法是使用多个
过滤器表达式
这是我使用单个过滤器表达式进行的基线查询,它可以正常工作
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" } }'