繁体   English   中英

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

[英]Scan DynamoDB table for results from the current month using PHP

我在AWS DynamoDB中有一个表,该表中的每个项目都有一个String-type“ date”属性,其中包含创建特定项目的日期。 该属性中的日期以以下格式保存: dd/mm/YYYY

我想做的就是扫描此表,并获取当月的所有结果。 我还想再进行2次单独扫描。 一个来自上个月的结果(例如,现在是7月,所以我想从6月获得结果)以及两个月前的结果(例如,我想从5月获得所有结果)。

在DynamoDB PHP SDK文档中,他们演示了扫描,并且在示例中,他们使用以下代码根据称为“时间”的属性来过滤扫描:

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

所以我认为我可以用-1 month代替-15 minutes ,但是问题是,如您在上面的代码中看到的那样,“ time”属性是Number类型,而不是String类型,因此我无法执行此操作。

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

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

starts_with(sortKeyName,:sortkeyval)-如果排序键值以特定操作数开头,则为true。 (您不能将此函数与Number类型的排序键一起使用。)请注意,函数名begin_with区分大小写。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM