2017-10-13 4 views
0

Ich habe eine Dynamo-DB-Tabelle, wo der Sortierschlüssel einen numerischen Wert hat. Ich habe eine Anforderung, das erste Element abzurufen, das einen niedrigeren Wert hat als das, das ich habe.Wie kann ein Artikel, der einem anderen Artikel in DynamoDB am nächsten ist, abgerufen werden?

Ich habe durch http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html#API_UpdateItem_Examples docs gegangen, aber ich kann keinen Weg, um zu sehen: - begrenzt das Ergebnis auf 1 Eintrag

Gibt es eine Möglichkeit, um tatsächlich zu erreichen, was ich will mit Dynamo DB - der Ausgang sortieren?

EDIT: Nach dieser: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.html Die Ergebnisse werden über Sortierschlüssel sortiert, und wenn es numerisch ist, werden sie absteigend sortiert. Das ist großartig, aber ich kann immer noch keinen Weg finden, nur ein einziges Ergebnis zu erhalten [möchte in einigen Fällen nicht für den vollständigen Tabellenscan zahlen].

Antwort

1

Suchen Sie nach dem nächsten Element mit einem niedrigeren Sortierschlüssel innerhalb des gleichen Partitionsschlüssels?

In diesem Fall können Sie die Abfrage verwenden, wie Sie gefunden haben, in Absteigend sortieren und auf 1 beschränken. Dadurch wird nicht die gesamte Tabelle gescannt.

Alternativ können Sie, wenn Sie möchten, dass Sie Cross-Partitionen scannen, dies leider nur mit einem Table Scan tun.

+0

Vielen Dank, Abhaya. Ich weiß nicht, wie ich das 'Limit' verpasst habe! – Krystian

Verwandte Themen