Dynamodb KeyCondition 表达式:有没有办法将 begin_with 与多个 ExpressionAttributeValues 一起使用?

时间:2021-06-16 09:43:27

标签: amazon-dynamodb

我有一个 dynamodb 表,分区键为“merchantId”,排序键为“date_service”,其中包含诸如 {"merchantId" : "BPTR234561" , "date_service" : "2021-03-16_order"} 之类的项目。 我需要查询特定日期范围内的所有项目。我知道我可以通过使用 begin_with like 来查询特定日期

    table.query(
            KeyConditionExpression = 'merchantId = :merchantId and begins_with(date_service , :ds)',
            ExpressionAttributeValues = {
                ':merchantId' : 'BPTR234561',
                ':ds' :  '2021-03-12'     
})

但我需要按日期范围查询。一种方法是将日期存储为一个单独的属性,并像这样使用过滤器表达式:

table.query(
            KeyConditionExpression = 'merchantId = :merchantId',
            FilterExpression = 'date BETWEEN :sd AND :ed'
            ExpressionAttributeValues = {
                ':merchantId' : 'BPTR234561',
                ':sd' :  '2021-03-12',
                ':ed' : '2021-03-21'
})

我试图找到一种方法,我可以使用现有的排序键来执行此查询。有没有办法做到这一点,还是我应该使用 FilterExpression 以第二种方式运行查询?

0 个答案:

没有答案
相关问题