ich AWS MobileHub verwende und ich eine DynamoDB Tabelle (userId
, username
, usertoplevel
, usertopscore
). Mein Partitionsschlüssel ist eine Zeichenkette (userId
) und ich habe einen globalen Suchindex (GSI) erstellt, in dem ich usertoplevel
als Partitionsschlüssel und usertopscore
als Sortierschlüssel mache. Ich kann für alle Einzelteile durch den folgenden Code erfolgreich abfragenBegrenzung und Bestellung des Scan Ergebnis AWS
final DynamoDBScanExpression scanExpression = new DynamoDBScanExpression();
List<UserstopcoreDO> results;
DynamoDBMapper mapper = AWSMobileClient.defaultMobileClient().getDynamoDBMapper();
results = mapper.scan(UserstopcoreDO.class, scanExpression);
for (UserstopcoreDO usertopScore : results) {
Logger.d("SizeOfUserScore : " + usertopScore.getUsertopscore());
}
Jetzt habe ich 1500 Datensätze in der Tabelle, und ich möchte das Ergebnis begrenzen nur die Top 10 der Benutzer zu holen. Ich werde dankbar sein, wenn jemand hilft.
aber das Problem in der Abfrage ist, ich muss Hash-Schlüssel setzen und in meiner Bedingung gibt es keinen Hash-Schlüssel zu setzen, wenn ich nicht Hash-Schlüssel gesetzt, geben Sie mir einen Fehler "Keine Hash-Schlüssel Bedingung in der Abfrage gefunden" so wie um diesen Zustand zu bewältigen –