我试图在我的dynamodb中建立某个属性的直方图
我认为最简单的方法是使用多个private
这是我的基线查询,只有一个filter-expression
,它可以正常工作
filter-expression
现在,我试图将其扩展到多个aws dynamodb scan --table-name test --select "COUNT" --filter-expression "contains(score, :s)" --expression-attribute-values '{ ":s": { "N": "1" } }' --limit 100
并且我不确定如何
我试过了:
filter expressions
和
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
答案 0 :(得分:8)
可能我迟到了。但是,正在寻找类似的场景而一无所获。如果其他人可以受益,仍在回答。
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
答案 1 :(得分:2)
过滤表达式是一种条件表达式。你可以combine filter expressions with boolean logic。但是,在您的示例中,您可以在不使用AND / OR运算符来组合表达式的情况下离开。
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
答案 2 :(得分:0)
使用之间
aws dynamodb scan --table-name test --select "COUNT" \
--filter-expression "(score between :s and :s1)" \
--expression-attribute-values '{ ":s": { "N": "0" }, ":s1": { "N": "10" } }'
答案 3 :(得分:0)
对于那些正在搜索 nodeJs
过滤器表达式的人:
const params = {
TableName: "orderMessages",
Key: {
order_id,
},
FilterExpression: "#order_id = :ordrId OR #timestamp < :ts",
ExpressionAttributeNames: {
"#order_id": "order_id",
"#timestamp": "timestamp"
},
ExpressionAttributeValues: {
":ordrId": order_id,
":ts": now
},
}
快乐编码:)