DynamoDB .Net限制使用'始于'

时间:2016-04-04 11:44:30

标签: .net amazon-dynamodb

此代码使用Dynamo,但使用C#编码。

我有一个使用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

// index是要搜索的字符串的值

// amazonClient只是AWS的参数

// tableName是表的名称

这样可以正常工作,但我现在明白返回的数量可能很大,所以我需要限制在任何返回页面中返回的值的数量或限制搜索的项目数量(不太可取) ),并获取LastKeyEvaluated。我的问题是我无法看到如何实现对此方法的限制,如何获取LastKeyevaluated,最后,如果我有LastKeyEvaluated如何获得下一组结果。

我看过使用ScanRequest,它似乎允许限制,但我看不出如何添加'BeginsWith'过滤器表达式?也不知道如何利用LasKeyEvaluated

我很感激与.Net

一起使用的建议

非常感谢

埃利

1 个答案:

答案 0 :(得分:0)

当您调用table.Scan时,实际上还没有进行扫描。它从AmazonDynamoDBClient设置underling请求对象。在返回的搜索对象上,您可以调用GetNextSet(),这相当于在AmazonDynamoDBClient上只调用一次Scan。如果再次调用GetNextSet,搜索对象将保持LastKeyEvaluated的状态,并将其传递给下一个。