Ich baue eine triviale API mit API Gateway bis DynamoDB. Ich versuche, eine bedingte Abfrage für einen Sortierschlüssel durchzuführen, und ich bekomme immer die Nachricht "Abfrageschlüssel bedingt nicht unterstützt." Aber alles, was ich in den Dokumenten gelesen habe, sagte, das sollte tatsächlich funktionieren.Bedingte Abfrage des Sortierschlüssels in DynamoDB funktioniert nicht?
Ich versuche, so etwas wie zu tun:
{
"TableName": "testTable",
"KeyConditionExpression": "requestTimeEpoch > :since",
"ExpressionAttributeValues": {
":since": {
#if($input.params('since') != "")
"S": "$input.params('since')"
#else
"S": "1"
#end
}
}
}
Ich habe irgendwo gelesen, dass jemand dieses Problem hatte, als eine Nummer verwenden, so habe ich versucht, es in einen String statt umzuschalten. Wie auch immer, sollte das nicht funktionieren?
(requestTimeEpoch ist die Art/Bereich Schlüssel für die Raute-Taste)
Ok sein, die dann viel mehr Sinn macht. Ich habe nicht verstanden, wie es intern gespeichert wurde, obwohl ich die Dokumente gelesen habe. Leider kann ich das nicht direkt vom API Gateway aus nutzen, so wie ich es mir erhofft hatte. Ich muss eine Lambda-Funktion verwenden, damit ich einen Hash-Schlüssel des Tages oder Monats verwenden kann, den ich nicht direkt mit dem Mapping erreichen kann ... so nah und doch so weit! –