2017-03-04 104 views
0

我是Dynamodb的新手, 我有表名是「用戶」,其中有兩列,一個是「時間」,另一個是「成本」。 我想根據列名得到排序後的數據, 說如果我提供輸入參數爲「時間」的前50個記錄按遞增順序,並且如果我提供輸入參數爲「成本」,那麼前50個記錄。如何根據動態列從dynamodb獲取排序數據

我試過這樣的事情,但這不起作用。

{ 
    TableName: "User", 
    Limit: 50, 
    ScanIndexForward: false, 
    ExclusiveStartKey: (params.lastEvaluatedKey)? {tripId: {S: String(params.lastEvaluatedKey)}}: null, 
    KeyConditionExpression : 'cost > :costValue', 
    ExpressionAttributeValues : { 
     ':costValue': '1' 
    } 
} 

謝謝先進。

回答

0

不幸的是,Dynamodb對錶中的所有屬性都沒有排序功能。您只能使用ScanIndexForward的排序鍵對項目排序爲true/false。

如果要按排序鍵以外的屬性排序項目,則必須在客戶端執行(即,Dynamodb不具備此功能)。