Amazon dynamodb 使用带分区键和范围键的LSI查询Dynamodb
在DynamoDB中,我使用分区键和范围键配置了LSI(本地二级索引) 如何使用分区键值和范围键值查询DynamoDB表 在SQL中,我可以使用In操作符:Amazon dynamodb 使用带分区键和范围键的LSI查询Dynamodb,amazon-dynamodb,Amazon Dynamodb,在DynamoDB中,我使用分区键和范围键配置了LSI(本地二级索引) 如何使用分区键值和范围键值查询DynamoDB表 在SQL中,我可以使用In操作符: SELECT * FROM genericTable WHERE partionKey = "foo" AND rangeKey IN ("bar1", "bar11", "bar5") 如何在DynamoDB中实现此功能 依照 查询可以使用KeyConditionExpression检索。。。几项 具有相同分区键值但不同排序
SELECT *
FROM genericTable
WHERE partionKey = "foo"
AND rangeKey IN ("bar1", "bar11", "bar5")
如何在DynamoDB中实现此功能
依照
查询可以使用KeyConditionExpression检索。。。几项
具有相同分区键值但不同排序键值的
但是,在有效的比较运算符列表中,没有类似于SQL“in”的内容
有没有办法使用多个键条件表达式,如下面的SQL
SELECT *
FROM genericTable
WHERE partionKey = "foo"
AND (rangeKey = "bar1"
OR rangeKey = "bar5" ....)
根据AWS文件中给出的示例 排序键条件的有效比较如下所示:
- sortKeyName=:sortkeyval-如果排序键值等于:sortkeyval,则为true
- sortKeyName<:sortkeyval-如果排序键值小于:sortkeyval,则为true
- sortKeyName:sortkeyval-如果排序键值大于:sortkeyval,则为true
- sortKeyName>=:sortkeyval-如果排序键值大于或等于:sortkeyval,则为true
- sortKeyName介于:sortkeyval1和:sortkeyval2之间-如果排序键值大于或等于:sortkeyval1且小于 或等于:sortkeyval2
- 以(sortKeyName,:sortkeyval)开始\u-如果排序键值以特定操作数开始,则为true。(您不能使用此功能 使用编号类型的排序键。)
$tableName = "genericTable";
$response = $dynamodb->query([
'TableName' => $tableName,
'IndexName' => 'OrderCreationDateIndex',
'KeyConditionExpression' => 'partionKey = :p_key and begins_with(rangekey, :range)',
'ExpressionAttributeValues' => [
':p_key' => ['S' => 'foo'],
':range' => ['S' => 'bar']
],
'Select' => 'ALL_PROJECTED_ATTRIBUTES',
'ScanIndexForward' => false,
'ConsistentRead' => true,
'Limit' => 5,
'ReturnConsumedCapacity' => 'TOTAL'
]);
好的,谢谢你的确认。“以开始”不太有效,因为表中可能有项目bar1、bar2、bar3、bar4,但参数列表可能只包含[bar1、bar2、someotherId]我不同意对原始问题的编辑,我要特别询问如何使用分区键和范围键值列表进行查询。问题的标题失去了这种区别。支持查询给定的分区键和单个范围键,但不支持查询范围键值列表,这正是我所要求的