2016-08-01 4 views
2

Ich verwende AWS-Ruby-SDK für den Zugriff auf Dynamodb. Ich möchte Abfrageoperation verwenden und alle Elemente erhalten. Also verwende ich Wildcard-Zeichen * in expression_attribute_values. Es funktioniert nicht. Wenn ich jedoch einen bestimmten Wert festlege, funktioniert es.Wie verwendet man Wildcard-Zeichen * in Dynamobb Abfragevorgang?

Wie verwende ich *? Unten ist mein Code, um dynamodb abzufragen:

db_client.query({ 
     table_name: "my_table_name", 
     key_condition_expression: "#idtype = :idType", 
     expression_attribute_names: { 
      "#idtype" => "IdType" 
     }, 
     expression_attribute_values: { 
      ":idType" => "*", 
     }, 
    }) 

Auch ich spezifiziere *, weil ich alle Werte will. Endergebnis, das ich will, ist nur eindeutige Werte in der Primärschlüssel IdType, aber es scheint keine Möglichkeit zu geben, einzigartige Einschränkung in dynamodb (nicht, dass ich weiß), so dass ich alle Werte abrufen und eindeutige Werte aus dem Ergebnis mit meinem eigenen haben Code.

Jede Hilfe wäre willkommen.

PS: Primäre Partition Key - IDTYPE ist ein String

Antwort

0

Sie die Scan API können alle Elemente in einem DynamoDB Tisch zu bekommen. Wenn Sie nur die Primärschlüssel benötigen, können Sie mit ProjectionExpression="IdType" die Datenmenge begrenzen, die Sie zurücksenden.