2016-11-30 2 views
1

Ich verstehe nicht durch Lesen von Amazon DynamoDB Leitfaden, wenn es eine Möglichkeit gibt, Elemente nach einer Abfrage/Scan zu bestellen."Sortieren nach" in DynamoDB mit Parametern

Zum Beispiel:

--Mein Datenbank 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", 
     } 

Deshalb möchte ich meine Datenbank scannen und zurück, alle bestellten Artikel von "updateDate". Gibt es einen Weg dies mit dynamoDB params zu erreichen?

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

Antwort

1

In DynamoDB gibt es keine Order By. Sie müssen die Ergebnismenge auf der Clientseite sortieren, wenn das Attribut nicht als Sortierschlüssel definiert ist.

Wenn jedoch updateDate als Sortierschlüssel definiert ist, verfügt die API über die Funktion zum Sortieren der Daten in aufsteigender oder absteigender Reihenfolge.

Wenn ScanIndexForward true, gibt DynamoDB die Ergebnisse in der Reihenfolge, in der sie (nach Art Schlüsselwert) gespeichert sind. Dies ist das Standardverhalten . Wenn ScanIndexForward den Wert false hat, liest DynamoDB die Ergebnisse in umgekehrter Reihenfolge nach Sortierschlüsselwert und gibt dann die Ergebnisse an den -Client zurück.

Gibt die Reihenfolge der Indexdurchquerungen an: Wenn true (Standard), wird die Traversierung in aufsteigender Reihenfolge ausgeführt; wenn false, wird der Durchlauf in absteigender Reihenfolge ausgeführt.