können Sie erstellen ein GSI (lass es timestamp_id-index
nennen):
Wir unseren Index der Partition Schlüssel angeben wird ein Attribut namens fixed_val
und unsere Sortierschlüssel timestamp_id-index
sein zu sein.
fixed_val
enthält jeden Wert, den Sie möchten, aber es muss immer dieser Wert sein, und Sie müssen es von der Clientseite kennen. Für dieses Beispiel nehmen wir an, dass fixed_val
immer 1
ist.
GSI-Schlüssel müssen nicht eindeutig sein, also keine Sorge, wenn es zwei duplizierte timestamp_id
Werte gibt.
Sie würden die Tabelle wie folgt abfragen:
var now = Date.now();
//...
{
TableName: "foo",
IndexName: "timestamp_id-index",
ExpressionAttributeNames: {
"#f": "fixed_value"
},
ExpressionAttributeValues: {
":f": 1,
},
KeyConditionExpression: "#f = :f",
// true -> ascending, false -> descending
ScanIndexForward: true
}
DynamoDB nicht diesen Anwendungsfall nicht unterstützt. Wenn Sie sich in dieser Situation befinden, müssen Sie die Partitionsschlüssel in einem separaten Datenspeicher speichern und diese zuerst abrufen. Dann können Sie Abfragen für jeden Schlüssel der Reihe nach ausgeben und alle Daten Ihrer Tabelle erhalten –
Ich habe das gleiche Problem. Haben Sie zufällig eine Lösung gefunden? Danke – jurer