使用 PHP 扫描 DynamoDB 表以获取当月的结果



我在 AWS DynamoDB 中有一个表,此表中的每个项目都有一个字符串类型的"date"属性,其中包含创建特定项目的日期。此属性中的日期将按以下格式保存:dd/mm/YYYY

我想做的是扫描这个表,并获取当月的所有结果。我还想再做 2 次单独的扫描。一个是上个月的结果(例如,现在是 7 月,所以我想从 6 月获得结果(,另一个是 2 个月前的结果(例如,我想从 5 月获得所有结果(。

在 DynamoDB PHP SDK 文档中,他们演示了扫描,在示例中,他们使用以下代码根据名为"time"的属性过滤扫描:

'time' => array(
'AttributeValueList' => array(
array('N' => strtotime('-15 minutes'))
),
'ComparisonOperator' => 'GT'
)

所以我认为我可以用-1 month替换-15 minutes,但它的问题是,正如您在上面的代码中看到的,"time"属性是数字类型,而不是字符串类型,所以我无法执行此操作。

我该怎么做才能仅获得当月的结果?

如果以yyyy/mm/dd格式存储数据,则可以使用begin_with函数来过滤数据:

begins_with ( sortKeyName, :sortkeyval ( - 如果排序键值为 true 以特定操作数开头。(不能将此函数与 类型为"数字"的排序键。请注意,函数名称 begins_with区分大小写。

否则,我看不出这种格式的数据怎么可能。

另一种选择是将其转换为Unix时间戳,然后您可以使用<,<=,>,>=或between运算符

最新更新