[英]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.