2017-07-25 54 views
0

我在AWS DynamoDB中有一個表,並且此表中的每個項目都有一個String類型的「date」屬性,其中包含創建特定項目的日期。此屬性中的日期以這種格式保存:dd/mm/YYYY使用PHP掃描當前月份結果的DynamoDB表使用PHP

我想要做的是掃描此表,並獲得當月的所有結果。我也想再做兩次個人掃描。一個來自上個月的結果(例如,現在是7月,所以我想從6月份獲得結果),以及2個月前的結果(例如,我想從5月份獲得所有結果)。

在DynamoDB PHP SDK文檔,它們被證明的掃描,並且在該示例中它們被過濾掃描按照稱作「時間」使用此代碼的屬性:

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

因此,我認爲我可以用-1 month代替-15 minutes,但問題在於,正如你在上面的代碼中看到的,「time」屬性是一個數字類型,而不是字符串類型,所以我不能執行這個動作。

我該如何才能從當前月份獲得結果?

回答

1

如果存儲在yyyy/mm/dd格式的數據可以usebegin_with功能來過濾數據:

BEGINS_WITH(sortKeyName,:sortkeyval) - 如果排序鍵值 與特定的操作開始。 (您不能使用 類型爲Number的排序鍵使用此功能。)請注意,函數名稱 starts_with區分大小寫。

否則我不明白這種格式的數據是如何可能的。

另一種選擇是將其轉換成Unix的時間戳,然後你可以使用<,< =,>,> =或between運營商