Kir*_*ks 5 amazon-dynamodb dynamodb-queries
我找不到 dynamodb BETWEEN 运算符的任何详细文档,特别是它如何处理字符串。
例如,如果我进行诸如“... sort_key Between '100' and '150'”之类的查询并且排序键为“120”,那么它可以正确工作。但是,如果我创建“1224|67”或“6653|67”等字符串,然后在“3456|67”和“8968|67”之间查询,则它不起作用。如何获取这种比较内部如何运作的信息?
在您的情况下,您需要使用表达式属性名称和表达式属性值。这在任何 DynamoDB 查询中都是一个非常好的实践。
请注意,您还需要设置分区键(请参阅#pk
下文:pk
)。
aws dynamodb query \
--table-name TABLE_NAME \
--key-condition-expression "#pk = :pk AND #sk BETWEEN :a and :b" \
--expression-attribute-names '{"#sk": "sort_key", "#pk": "partition_key"}' \
--expression-attribute-values '{":a": {"S":"3456|67"}, ":b": {"S":"8968|67"}, ":pk":{"S":"partition_key_value"}}'
Run Code Online (Sandbox Code Playgroud)
我有一段时间没有使用这种语法了,可能会出现一些小语法错误,但这是您为了使用BETWEEN
.
请参阅有关KeyConditions的最后一个示例:
aws dynamodb query \
--table-name Music \
--key-condition-expression 'Artist = :a AND SongTitle BETWEEN :t1 AND :t2' \
--expression-attribute-values '{
":a": {"S": "No One You Know"},
":t1": {"S": "A"},
":t2": {"S": "M"}
}'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8051 次 |
最近记录: |