2016-04-04 60 views
0

此代碼使用Dynamo,但是使用C#編碼。DynamoDB .Net限制使用'開頭'的掃描

我有一個使用scanFilter掃描:

Table table = Table.LoadTable(amazonClient, tableName); 
ScanFilter scanFilter = new ScanFilter(); 
scanFilter.AddCondition("HashString", ScanOperator.BeginsWith, index); 
Search search = table.Scan(scanFilter); // more code follows utilising the results 

//指數是要搜索的字符串的值

// amazonClient僅僅是AWS

參數

// tableName是表的名稱

這工作正常,但我現在明白了返回的數量項可能是巨大的,所以我需要或者限制數量在任何返回頁面中返回的值或限制搜索的項目數量(不太需要),並獲取LastKeyEvaluated。我的問題是我看不到如何實現此方法的限制,如何獲得LastKeyevaluated,最後,如果我有LastKeyEvaluated如何獲得下一組結果。

我看過使用ScanRequest,它似乎允許一個限制,但我不明白我可以如何添加'BeginsWith'過濾器表達式?也不知道如何利用LasKeyEvaluated

我會很感激一個suggestionthat與.net工作

非常感謝

艾莉

回答

0

當你調用table.Scan實際上並沒有做掃描呢。它設置來自AmazonDynamoDBClient的下載請求對象。在返回的搜索對象上,您可以調用GetNextSet(),這相當於在AmazonDynamoDBClient上調用Scan一次。如果再次調用GetNextSet,則搜索對象保持LastKeyEvaluated的狀態,並將其傳遞給下一個。