2016-11-30 27 views
1

如果在查詢/掃描後有訂購項目的方法,則通過閱讀Amazon DynamoDB指南我不理解。DynamoDB中的「Order by」使用參數

例如:

- 我的數據庫table--

 TableName:"Projects", 
      Item:{ 
       "projectOwner": "User1", 
       "projectName": "Project1", 
       "creationDate": "Wed Nov 20 2016", 
       "updateDate": "Wed Nov 29 2016", 
     }Item:{ 
       "projectOwner": "User1", 
       "projectName": "Project2", 
       "creationDate": "Wed Nov 20 2016", 
       "updateDate": "Wed Nov 28 2016", 
     }Item:{ 
       "projectOwner": "User1", 
       "projectName": "Project3", 
       "creationDate": "Wed Nov 20 2016", 
       "updateDate": "Wed Nov 30 2016", 
     } 

所以我想掃描我的數據庫,並返回由 「updateDate」 下令所有項目。有沒有辦法使用dynamoDB params來實現這一點?

 params = { 
      TableName: "Projects", 
      ProjectionExpression: "projectName", 
      KeyConditionExpression: "projectOwner = :userId", 
      ExpressionAttributeValues: { 
       ":userId":userId 
      } 
     }; 

回答

1

DynamoDB中沒有Order By。如果屬性未定義爲Sort鍵,則必須對客戶端的結果集進行排序。

但是,如果將updateDate定義爲Sort鍵,則API具有按升序或降序對數據進行排序的功能。

如果ScanIndexForward爲true,DynamoDB將按照 的順序返回結果(按排序鍵值存儲)。這是默認的 行爲。如果ScanIndexForward爲false,則DynamoDB通過排序鍵值以 反向排序讀取結果,然後將結果返回給客戶端 。

指定索引遍歷的順序:如果爲true(默認),則以升序執行遍歷;如果爲false,則遍歷爲 ,按降序執行。